gpt4 book ai didi

MYSQL INNER JOIN 可能有空字段

转载 作者:IT王子 更新时间:2023-10-28 23:53:30 26 4
gpt4 key购买 nike

好的,我在连接 2 个表时遇到问题(使用 INNER JOIN)。第一个表包含类别列表(例如相册或博客文章),而第二个表包含“数据”

我试过这样的:

SELECT galeries_id, galeries_title, 
photos.photos_id, photos.photos_gal_id, photos.photos_link
FROM galeries
INNER JOIN photos
ON galeries.galeries_id=photos.photos_gal_id
GROUP BY photos_gal_id

这给了我公平的结果,很好地加入了我的表格,正如我希望他们有一个重要的异常(exception)。

如果表“photos”没有包含“photos_gal_id”的行(例如“2”),那么它将不会返回该类别的任何类别(galeries_id、galeries_title),即使它在 galeries 表中执行 egzist .

这是合乎逻辑的,因为:

 ON galeries.galeries_id=photos.photos_gal_id

现在我需要采用这部分来向我展示第二个表中没有相关行的鞋子

我想要得到的结果是:

galeries_id      galeries_title       photos_id       photos_link
1 blabla 3 test.jpg
2 bla bla2
3 etata 5 test.jpg

我希望我解释得够好:)谢谢..

最佳答案

要保留 galeries 中照片中没有匹配 ID 的行,您需要使用 LEFT JOIN 而不是 INNER JOIN:

SELECT galeries_id, galeries_title, 
photos.photos_id, photos.photos_gal_id, photos.photos_link
FROM galeries
LEFT JOIN photos
ON galeries.galeries_id=photos.photos_gal_id
GROUP BY photos_gal_id

这会给你:

galeries_id      galeries_title       photos_id       photos_link
1 blabla 3 test.jpg
2 bla bla2 NULL NULL
3 etata 5 test.jpg

如果你想用空字符串替换 NULL,你可以使用:

SELECT
IFNULL(photos.photos_id, ''),
IFNULL(photos.photos_link, '')

关于MYSQL INNER JOIN 可能有空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950351/

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