gpt4 book ai didi

mysql - 如何在MySQL中从多个表的单列中选择多个值?

转载 作者:行者123 更新时间:2023-11-29 06:16:41 25 4
gpt4 key购买 nike

我有以下 3 个表

表1

id    name
----------
1 john
2 dave
3 eve

表2

table1_id    table3_id
----------------------
1 2
1 3
1 5
2 2
2 3
2 4
3 1
3 5

表3

id    title
------------
1 blue
2 orange
3 green
4 yellow
5 black

我正在尝试选择每个 table1.name,其中 table3.title =(蓝色或橙色)AND(绿色或黑色)

这样输出就是

name
----
john
dave

这是我到目前为止无法完成这项工作的查询:

SELECT table1.name 
FROM table1
JOIN table2 ON table1.id = table2.table1_id
JOIN table3 t1 ON table2.table3_id = t1.id
JOIN table3 t2 ON t1.title = t2.title
WHERE t1.title IN ('blue', 'orange')
AND t2.title IN ('green', 'black')

如有任何建议,我们将不胜感激!

更新还有一个问题:)

如何选择每个 table1.name where table3.title = ('green' AND 'orange' AND 'black' AND '...')

最佳答案

不确定这是否适合您的需要,但您可能想尝试一下:

SELECT DISTINCT table1.name, table3.title
FROM table2
LEFT JOIN (table1, table3)
ON (table2.table1_id = table1.id AND table2.table3_id = table3.id)
WHERE table3.title = 'orange' OR table3.title = 'blue';

您可能想摆脱 DISTINCT,它现在只是确保每个名称仅显示一次。

铜罗马

关于mysql - 如何在MySQL中从多个表的单列中选择多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6080534/

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