1

我有以下两个表,Userdata 和 Activity:
Table Userdata
User            Email                                  RealName
Alpha alpha@domain.com Taylor
           
Beta beta@domain.com Samuelson
           
Table Activity
User            Group                                  MemberID
Alpha 5 09856
           
Gamma 2 09537
           
现在我尝试使用以下sql语句:
SELECT Activity.*,Userdata.* FROM Activity INNER JOIN Userdata ON Userdata.User=Activity.User
但是,用户 Gamma 的行没有返回。即使 Userdata 中没有 Gamma 数据,我怎样才能让他也返回?

4

1 回答 1

2

INNER JOIN仅在两个表中都存在值的行上连接两个表。 LEFT OUTER JOIN将完成您想要的,允许连接表为连接字段中的任何给定值设置一个空集,否则初始表中会出现:

SELECT
    Activity.*,
    Userdata.*
FROM
    Activity
    LEFT OUTER JOIN Userdata ON Userdata.User = Activity.User

您还可以参考MySQL 手册以获取有关JOINs.

于 2013-07-20T15:41:23.303 回答