我有两个表用户:
id int(11) NO PRI NULL auto_increment
membership_type tinyint(3) unsigned NO MUL NULL
username varchar(16) NO NULL
password char(40) NO NULL
email varchar(100) NO NULL
firstname varchar(40) NO NULL
lastname varchar(40) NO NULL
company varchar(120) NO NULL
birthday date NO NULL
country smallint(5) unsigned NO NULL
city smallint(5) NO NULL
address varchar(200) NO NULL
landphone char(10) NO NULL
mobilephone char(10) NO NULL
website varchar(150) NO NULL
feedback_score tinyint(4) NO NULL
created datetime NO NULL
last_login datetime NO NULL
last_ip varchar(15) NO NULL
另一个人的名字是 user_cache:
user_id int(11) NO MUL NULL
cache_type int(50) NO NULL
value varchar(100) NO NULL
我想选择用户数据(成员资格,用户名,名字,姓氏等)并选择相关用户的缓存数据(从user_cache中选择*,其中user_id = X)。我选择简单的SQL查询用户然后我使用另一个SQL查询获取缓存详细信息。我想将查询加入一个查询。这可能吗?
答案 0 :(得分:5)
select u.*, uc.*
from users as u
left join user_cache as uc
on u.id = uc.user_id
您将获得每行user_cache数据的所有用户信息,如果用户没有user_cache数据,那么您将获得user_cache数据的空值。
答案 1 :(得分:1)
我想这可行吗?
SELECT u.*, uc.*
FROM user u
left join user_cache uc ON uc.user_id = u.id
答案 2 :(得分:0)
也许我没有正确理解你的问题,但以下查询应该返回你需要的内容:
SELECT u.membership_type, u.firstname, ..., uc.*
FROM users u
LEFT JOIN user_cache uc
ON u.id = uc.user_id;