gpt4 book ai didi

mysql - 如果行不存在,则选择默认值;如果第二个表中不存在行,则从多个表中选择

转载 作者:行者123 更新时间:2023-11-29 07:54:38 25 4
gpt4 key购买 nike

我有两张 table

Permission
|id|userID|canView|canEdit|
|--+------+-------+-------|
|1 | 0 | true | false | (my default value)
|2 | 1 | true | true |

Users
|id|name |
|--+-----|
|1 |Smith|

如何从权限中选择所有行并从用户表中添加名称列,如下所示

    |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|

最佳答案

一种方法是使用LEFT JOIN,如果未找到匹配项,这将从右表的列中填充空值:

SELECT 
p.* ,
u.name
FROM `Permission` p
LEFT JOIN `Users` u
ON p.userID = u.id

关于mysql - 如果行不存在,则选择默认值;如果第二个表中不存在行,则从多个表中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com