[英]Complicated SQL Join Query
我有两个表之一是用户:
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查询获取缓存详细信息。 我想将查询合并为一个查询。 这可能吗 ?
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数据的null。
我想这可能行得通吗?
SELECT u.*, uc.*
FROM user u
left join user_cache uc ON uc.user_id = u.id
也许我无法正确理解您的问题,但是以下查询应该返回您需要的内容:
SELECT u.membership_type, u.firstname, ..., uc.*
FROM users u
LEFT JOIN user_cache uc
ON u.id = uc.user_id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.