gpt4 book ai didi

mysql - 列出表 1 中的所有项目并填写表 2 中匹配的信息

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:47 25 4
gpt4 key购买 nike

我需要列出表 1 中的所有项目并显示表 2 中的匹配记录。表 1 包含 6 行和类别。表 2 包含用户和那里匹配的类别。一些用户可以属于多个类别,因此可以在此表中多次出现。

这是我的表格的样子:

表 1:

- catID
- categoryname

表 2:

- userID
- catID
- catDetails

我已经尝试过联接、并集......并以下面的查询结束。

SELECT * FROM table1 one , table2 two
WHERE two.userID = 1 AND one.catID = two.catID

我希望是这样的:

catID1 - userID1
catID2
catID3 - userID1
catID4 - userID1 - catdetails1
catID4 - userID1 - catdetails2
catID4 - userID1 - catdetails3
catID4 - userID1 - catdetails4
catID5

(用户有一次 1 和 3,以及 4x4)

但是我得到:

catID1 - userID1
catID3 - userID1
catID4 - userID1 - catdetails1
catID4 - userID1 - catdetails2
catID4 - userID1 - catdetails3
catID4 - userID1 - catdetails4

catID2 和 catID5 未按要求显示。

即使所选用户没有匹配数据,我如何确保所有类别都可见?

最佳答案

你可以使用LEFT JOIN,

LEFT JOIN 关键字返回左表 (table1) 中的所有记录,以及右表 (table2) 中匹配的记录。如果没有匹配,则结果从右侧开始为 NULL。

enter image description here

SELECT * FROM table1 one 
LEFT JOIN table2 two
ON one.catID = two.catID
AND two.userID = 1

演示:

http://sqlfiddle.com/#!9/313798/4

输出

catID   categoryname    userID  catID   catDetails
1 CAT1 1 1 (null)
2 CAT2 (null) (null) (null)
3 CAT3 1 3 (null)
4 CAT4 1 4 catdetails2
4 CAT4 1 4 catdetails3
4 CAT4 1 4 catdetails4
4 CAT4 1 4 catdetails1
5 CAT5 (null) (null) (null)

关于mysql - 列出表 1 中的所有项目并填写表 2 中匹配的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57854588/

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