我有一个表与艺术家和另一个与打印。我想从表格Artist中获取所有内容,并从表格Prints中获取print_id。想象一下,如果我有3位艺术家A,B和C.想象一下,艺术家A和B是否参加了印刷品1并且还参与了2.艺术家C参与了印刷品2和3.我想要的是关于艺术家A和B的信息,因为他们参与了打印1,而且还打印了他们参与的其他打印件(在这种情况下,打印2)。如何将两个选择与连接相交? SQL
表艺术家: 艺术家A - 巴西。 艺术家B - 美国。 艺术家C - 比利时。
表格打印: 1-波。 2 - 地图。 3 - 晚上。
结果预计: 艺术家A - 巴西 - 1 艺术家A - 巴西 - 2 艺术家乙 - 美国 - 1 艺术家乙 - 美国 - 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
)
你会得到哪些错误? – Ygalbel
Mysql不支持相交,你必须改用inner join。 – Shadow
我是否错过了某些东西,或者这两个查询是相同的,除了第一个在'print_id = 1'上过滤的东西。如果是这种情况,那么第一个查询不会产生你想要的结果?我多次阅读它以确保我不会在代码中遗漏某些内容,但是如果我愿意,请告诉我。 – Nicarus