我有一个包含赞助商数据的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