我有三个表...用户,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