gpt4 book ai didi

sql - MySQL 多重连接/子查询问题

转载 作者:可可西里 更新时间:2023-11-01 08:38:22 25 4
gpt4 key购买 nike

大约一年以来,我们一直允许我们的用户使用不唯一的用户名和/或电子邮件地址登录(尽管每个用户都有一个唯一的 ID)。虽然系统可以优雅地处理重复的用户名/电子邮件,但我们最终决定强制执行唯一的用户名和电子邮件地址。我的任务是在 MySQL 中生成一个表,该表将显示重复项和使用重复项 ID 的表(即依赖于重复项用户 ID 的表,使用 1 表示真,0 表示假)。一旦重复数据被标记为删除,该表将用作引用。简而言之,我希望生成如下所示的表格:

|用户 ID | 用户名 | 电邮 | 存在_in_Table1 | 存在_in_Table2 | 存在_in_Table3 |
---------------------------------------------- ---------------------------------------------- ------
| 0001.....| 测试1…………| 电子邮件。| 0................................| 0................................| 1................................|
| 0002.....| 测试2…………| 电子邮件。| 0................................| 1................................| 1................................|
| 0003.....| 测试3…………| 电子邮件。| 1................................| 1................................| 1................................|


这是如何实现的并不重要。由于我的 SQL 技能有些欠缺,因此我打算使用 PHP 和一些简单的 SQL 查询以编程方式执行此操作。但是,我相信单个 SQL 查询或一系列查询(不使用 PHP)是最干净的方法。我知道如何查询重复项,但我似乎无法弄清楚如何查询多个表并以适当的方式通过用户 ID 加入它们。我感谢所有帮助。谢谢。

最佳答案

SELECT u.User_id, u.Username, u.Email,
IF(t1.User_id IS NULL, 0, 1) AS Exists_in_Table1,
IF(t2.User_id IS NULL, 0, 1) AS Exists_in_Table2,
IF(t3.User_id IS NULL, 0, 1) AS Exists_in_Table3
FROM Users u
LEFT OUTER JOIN Table1 t1 USING (User_id)
LEFT OUTER JOIN Table2 t2 USING (User_id)
LEFT OUTER JOIN Table3 t3 USING (User_id);

关于sql - MySQL 多重连接/子查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1965482/

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