gpt4 book ai didi

mysql - SQL 查询从两个表中选择匹配和缺失的值

转载 作者:行者123 更新时间:2023-11-29 12:11:33 27 4
gpt4 key购买 nike

我有两个 MySQL 表:

user(id, name)
cards(id, number, user_id)

我需要形成查询,该查询将允许在页面上显示哪些卡由哪个用户拥有或尚未由任何人拥有(用户名 - 卡号)

注释:

  1. 一张卡只能链接到单个用户
  2. 一个用户可以拥有多张卡
  3. 我还需要显示尚未链接到任何用户的卡片(因此用户名将为“NONE”),卡片 table_id 中的 user_id = 0

我已经尝试过:

SELECT c.id, c.number, u.name FROM card AS c, user AS u WHERE c.user_id=u.id

这允许我选择与用户链接的卡片

但我仍然遇到如何添加 user_id = 0 的卡的问题(请记住,在这种情况下,我需要为用户名设置“NONE”值)。

更新:用户表中没有用户 id = 0

最佳答案

使用LEFT JOIN。当第一个表没有任何匹配行时,这将为连接表中的列返回 NULL

SELECT c.id, c.number, IFNULL(u.name, "not linked") AS name
FROM card AS c
LEFT JOIN user as U ON c.user_id = u.id

关于mysql - SQL 查询从两个表中选择匹配和缺失的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30583733/

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