gpt4 book ai didi

mysql - 左联接导致没有空行的列出现空行

转载 作者:行者123 更新时间:2023-11-29 04:12:07 24 4
gpt4 key购买 nike

这让我很困惑,即使表 movie_image 在 mi.filename 列中没有任何 NULL 值,我也得到了这个查询的 NULL 列。

SELECT m.*, mi.filename, COUNT(p.movieid) AS publicationsCount
FROM movies m
LEFT JOIN (movie_publications p, movie_image mi)
ON (m.movieid = p.movieid
AND
p.movieid = mi.movieid)
GROUP BY m.movieid

最佳答案

左连接将从第一个表 (movies) 中获取所有行并尝试与第二个表 (movie_publications) 匹配。如果不可能,将插入 NULL 列而不是第二个表的列。

如果您不希望这种情况发生,您应该使用 INNER JOIN。

更新:您在评论中说过电影可以发布或不发布,但始终会有图像,因此您可以按如下方式重写查询。如果您不能完全确定所有电影都有图像,您也可以对 movie_image 使用 LEFT JOIN。

SELECT m.*, mi.filename, COUNT(p.movieid) AS publicationsCount
FROM movies m
LEFT JOIN movie_publications p
ON (m.movieid = p.movieid)
INNER JOIN movie_image mi
ON (m.movieid = mi.movieid)
GROUP BY m.movieid

关于mysql - 左联接导致没有空行的列出现空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7581228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com