作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 MySQL sponsors
表,其中包含赞助商数据,还有一个 magazine_sponsors
表,说明哪些赞助商链接到特定杂志。
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 |
----------------------------------------
最佳答案
WHERE
中的条件是将 OUTER JOIN 转换为 INNER ONE。您需要将 OR ms.magazine_id IS NULL
添加到您的条件或将其移至 ON
子句:
SELECT *
FROM sponsors s
LEFT JOIN magazine_sponsors ms ON ms.sponsor_id=s.id AND ms.magazine_id="magB"
关于mysql - 获取两个表之间的匹配行,否则在左表中获取 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31511331/
我收到这个查询: $query = mysql_query("SELECT arbejdsopgave.*, DATE_FORMAT(dato, '%d-%m
我是一名优秀的程序员,十分优秀!