gpt4 book ai didi

mysql 仅当存在时选择列

转载 作者:行者123 更新时间:2023-11-29 12:10:19 26 4
gpt4 key购买 nike

我有 5 个表,我想从中选择数据,但有时第 5 个表(命名注释)将为空。当发生这种情况时,我希望我的查询为该表中的值返回 null,并且只返回其他值(第 5 个表包含用户评论,有时没有)。

这是我的查询:

SELECT articles.title, articles.posted, articles.body, authors.name, authors.img, authors.bio, comment.user_id, comment.text, comment.article_id, GROUP_CONCAT(categories.cat_name) AS cat_name
FROM articles, authors, categories, article_categories, comment
WHERE articles.author_id = authors.id
AND articles.id = article_categories.article_id
AND article_categories.category_id = categories.id
AND articles.id = comment.article_id
AND title LIKE :title;

:title 来自 PDO,与此处无关。

问题来自于ANDarticles.id = comment.article_id。我不知道如何以一种仅检查它是否存在的方式编写它,否则忽略它。

感谢您的帮助

最佳答案

您应该使用proper join syntax ,在本例中,使用 LEFT JOIN 作为注释表,而不是 INNER JOIN:

SELECT articles.title, articles.posted, articles.body, authors.name, authors.img, authors.bio, comment.user_id, comment.text, comment.article_id, GROUP_CONCAT(categories.cat_name) AS cat_name
FROM articles INNER JOIN authors ON articles.author_id = authors.id
INNER JOIN article_categories ON articles.id = article_categories.article_id
INNER JOIN categories ON article_categories.category_id = categories.id
LEFT JOIN comment ON articles.id = comment.article_id
WHERE title LIKE :title;

关于mysql 仅当存在时选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30821381/

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