gpt4 book ai didi

SQL:有关 sql 连接的帮助

转载 作者:行者123 更新时间:2023-11-29 14:55:35 25 4
gpt4 key购买 nike

您好,我有一个包含帖子、标签和 tag_ref 链接表的应用程序。我想查询具有特定标签关联的帖子。

数据库结构如下:

帖子

ID

tags_ref

行号

表格

标签ID

标签

ID

安全标签

标签

我的查询基本上是如果 $safe_tag 不为空,则在 post.id =tags_ref.row_id 上加入tags_ref,在tags_ref.tag_id =tags.id 上加入标签,其中tags_ref.table = 'posts' 和tags.safe_tag = ' food' 和 post.city_id = 2

这个查询正确吗?我使用的连接类型是否正确?

SELECT *
FROM (`posts`)
INNER JOIN `tags_ref` ON `posts`.`id` = `tags_ref`.`row_id`
INNER JOIN `tags` ON `tags_ref`.`tag_id` = `tags`.`id`
WHERE `tags_ref`.`table` = 'posts'
AND `tags`.`safe_tag` = 'food'
AND `posts`.`city_id` = '2'

我得到了奇怪的结果,根本没有关联的标签。

谢谢

最佳答案

这只会返回 posts 表中的结果,而不是连接表中的所有 列。我已删除您在问题文本中未指定的 city_id 约束(并且在您的查询中):

SELECT P.*
FROM posts AS P
INNER JOIN tags_ref AS TR ON P.id = TR.row_id
INNER JOIN tags AS T ON TR.tag_id = T.id
WHERE TR.table = 'posts'
AND T.safe_tag = 'food'

我还添加了表别名并删除了引用。

如果您没有得到任何结果,这表明我没有关于食物的帖子。

关于SQL:有关 sql 连接的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4706075/

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