我有一個表與藝術家和另一個與打印。我想從表格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