我有一個包含贊助商數據的MySQL sponsors
表和一個表示贊助商鏈接到特定雜誌的magazine_sponsors
表。獲得兩個表之間的匹配行,否則在左表中爲NULL
sponsors
-------------------------
| id | name |
-------------------------
| sponA | Sponsor A |
| sponB | Sponsor B |
| sponC | Sponsor C |
-------------------------
magazine_sponsors
----------------------------
| magazine_id | sponsor_id |
----------------------------
| magA | sponA |
| magA | sponB |
| magB | sponA |
----------------------------
我的目標是顯示,給出了具體的magazine_id
,贊助商提供的完整列表,其中說,他們都與該雜誌的,哪些不是。例如,magB
我想獲得:
----------------------------------------
| magazine_id | sponsor_id | name |
----------------------------------------
| magB | sponA | Sponsor A |
| NULL | sponB | Sponsor B |
| NULL | sponC | Sponsor C |
----------------------------------------
我試着使用RIGHT JOIN
以下查詢:
SELECT *
FROM magazine_sponsors ms
RIGHT JOIN sponsors s ON ms.sponsor_id=s.id
WHERE ms.magazine_id="magB"
但只輸出的第一行。
----------------------------------------
| magazine_id | sponsor_id | name |
----------------------------------------
| magB | sponA | Sponsor A |
----------------------------------------
它返回只有一行「的MAGb」。不管怎麼說,還是要謝謝你。 – Giorgio