我有两张桌子
Permission
|id|userID|canView|canEdit|
|--+------+-------+-------|
|1 | 0 | true | false | (my default value)
|2 | 1 | true | true |
Users
|id|name |
|--+-----|
|1 |Smith|
如何从Permission中选择所有行,并从users表中添加name列,如下所示
|id|userID|canView|canEdit|name |
|--+------+-------+-------+-----|
|1 | 0 | true | false |NULL |
|2 | 1 | true | true |Smith|
我试试
SELECT p.* , u.name FROM `Permission` p ,`Users` u WHERE u.id = p.userID
但它唯一的回报
|id|userID|canView|canEdit|name |
|--+------+-------+-------+-----|
|2 | 1 | true | true |Smith|
答案 0 :(得分:2)
一种方法是使用LEFT JOIN
,如果找不到匹配项,这将从右表中的列填充空值:
SELECT
p.* ,
u.name
FROM `Permission` p
LEFT JOIN `Users` u
ON p.userID = u.id