我有以下两个表,Userdata和Activity:
表用户数据
用户 电子邮件 实名
阿尔法alpha@domain.com泰勒
贝塔beta@domain.com萨缪尔
表活动
用户 组 MEMBERID
阿尔法5个09856
伽玛2 09537
现在我尝试使用以下sql语句:
SELECT Activity.*,Userdata.* FROM Activity INNER JOIN Userdata ON Userdata.User=Activity.User
但是,尚未返回用户Gamma的行。即使Userdata中没有Gamma数据,我怎么能让他也回来?
答案 0 :(得分:2)
INNER JOIN
仅在两个表中存在值的行上连接两个表。 LEFT OUTER JOIN
将完成您想要的任务,允许连接表为连接字段中的任何给定值设置一个空集,否则该表将出现在初始表中:
SELECT
Activity.*,
Userdata.*
FROM
Activity
LEFT OUTER JOIN Userdata ON Userdata.User = Activity.User
您还可以参考the MySQL manual了解有关JOINs
。