我有三個表...用戶,user_info和quota_levels。他們是這樣的:如果條目不存在,選擇默認值
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(31) NOT NULL,
password VARCHAR(33) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE user_info (
userID INT UNSIGNED NOT NULL,
firstName VARCHAR(32),
lastName VARCHAR(32),
phone CHAR(14),
address VARCHAR(128),
birthdate DATE,
misc TEXT,
quotaLevel VARCHAR(32),
PRIMARY KEY (userID)
);
CREATE TABLE quota_levels (
quotaLevel VARCHAR(32) NOT NULL,
quota1 INT NOT NULL,
quota2 INT NOT NULL,
PRIMARY KEY (level)
);
每個用戶都將擁有users
表中的條目,但不一定在user_info
表。 user_info
表中的每個用戶都有一個quotaLevel
,對應於quota_levels
表中的quotaLevel
列。 quotaLevel
的可能值是BRONZE,SILVER,GOLD和PLATINUM。
我可以進一步解釋爲什麼這樣設置,但只是說這個結構不能改變會更快。
如果用戶存在,我想要得到他們的quotaLevel
的quota1
的值。如果用戶不存在,則應返回BRONZE的值quota1
。
我想用ONE查詢。它可以做,如何?
downvote的任何好理由,還是隻是隨機點擊的人? – Travesty3 2012-03-05 19:28:02