gpt4 book ai didi

mysql - 如何仅使用一个查询从多个表中获取数据?

转载 作者:行者123 更新时间:2023-11-29 02:38:48 25 4
gpt4 key购买 nike

我认为我有一个概念问题,而不是代码问题,我的数据库中有 4 个表,QUESTION、INTERESTS、QUESTIONTAG 和一个 USER。

我的表格结构:

INTEREST -- id
-- user
-- tagparent

QUESTION_TAG -- id
-- tagparent
-- tagchild ( unnecessary )
-- question

QUESTION -- id
-- content and when published ( unnecessary )

我想获得 10 个按 index_order ( field ) 排序的问题,这些问题对用户来说很有趣,我知道他对这些问题感兴趣,使用在问题和标签之间链接的 QUESTION_TAG 关联表。

所以逻辑是这样的:

request 0 :  SELECT * FROM QUESTION WHERE id = ( results of request 1
- returns many ) ORDER BY index_order LIMIT 0,10

这个请求必须返回很多结果:

request 1 : SELECT DISTICNT question FROM question_tag WHERE tagparent
= ( results of request 2 - returns many )

这个请求也返回了很多结果

request 2 : SELECT tagparent FROM interests WHERE user=9

所以使用 SubQueries 并不是很有帮助。

我被卡住了,我希望我能找到一个只使用单个请求的解决方案,而无需使用后端语言过滤数据。

如有任何帮助,我们将不胜感激。

最佳答案

可能这就是您正在寻找的。

select question.*, distinct question_tag.question, interests.tagparent
from question
inner join question_tag on question_tag.question = question.id
inner join interests on interest.tagparent = question_tag.tagparent
where interests.user = 9

关于mysql - 如何仅使用一个查询从多个表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57721448/

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