gpt4 book ai didi

mysql - 如何将两个 Selects 与 Joins 相交?数据库

转载 作者:行者123 更新时间:2023-11-30 22:25:27 25 4
gpt4 key购买 nike

我有一张 table 有艺术家,另一张 table 有版画。我想从 Artist 表中获取所有内容,而只是从 Prints 表中获取 print_id。想象一下,如果我有 3 位艺术家 A、B 和 C。想象一下,如果艺术家 A 和 B 参与了 print 1 和 2。艺术家 C 参与了 print 2 和 3。我想要的是关于艺术家 A 和 B 的信息,因为他们参与了打印 1 以及他们参与的其他打印(在本例中为打印 2)。

表艺术家:艺术家 A - 巴西。艺术家 B - 美国。艺术家 C - 比利时。

表格打印:1 - 波浪。2 - map 。3 - 夜晚。

预期结果:艺术家 A - 巴西 - 1。艺术家 A - 巴西 - 2。艺术家 B - 美国 - 1.艺术家 B - 美国 - 2.

我正在这样尝试,但出现了一些错误...

SELECT 
*
FROM
(SELECT DISTINCT
artist.*
,print.print_id
FROM
artist
JOIN print ON artist.artist_id = print.artist_id
WHERE
print.print_id = 1
INTERSECT
SELECT DISTINCT
artist.*
,print.print_id
FROM
artist JOIN print ON artist.artist_id = print.artist_id
)

最佳答案

您可以尝试对您拥有的表(选择)使用连接

SELECT * FROM (
SELECT DISTINCT
Artist.*,
Print.print_id
FROM Artist
JOIN Print
ON Artist.artist_id = Print.artist_id
WHERE Print.print_id=1
) as T1
JOIN
(
SELECT DISTINCT
Artist.*,
Print.print_id
FROM Artist
JOIN Print ON Artist.artist_id = Print.artist_id
) as T2
ON T1.artist_id = T2.artist_id

本质上选择是在表中,而 INTERSESCT 对应于带有两个表/选择的联合键键的 INNER JOIN

关于mysql - 如何将两个 Selects 与 Joins 相交?数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35384972/

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