gpt4 book ai didi

php - 在 SQL 查询中连接 3 个或更多表,返回空数组?

转载 作者:行者123 更新时间:2023-11-29 23:19:15 24 4
gpt4 key购买 nike

好吧,经过多次检查后,我不明白我错过了什么

我现在有 3 张 table :

用户表:

ID | Username | Password
1 | Micky | 123
2 | Mouse | 145

问题表:

 Question ID| Question_Title   | Question      | Rating | Category ID | User ID |
1 | Meaning of Life? | Same as Title | 100 | 2 | 1 |
2 | Foo is love? | Same as Above | 95 | 4 | 2 |

答案表:

   Answer_ID| Answer   | Answer_Rating     | Answer_User_ID    | Question_ID |
1 | YES | 1 | 1 | 1 |

我有以下查询:

"SELECT u.username, 
q.Question_Title,
q.Question,
q.Rating,
a.Answer,
a.Answer_Rating
FROM Questions q
join Users u on u.id = q.User_ID
join Answers a on a.Question_ID = 'q.Question ID'

WHERE q.Question_Title LIKE '%$Term%'";

除了问题标题、问题、问题评级、问题答案和答案评级之外,这还会为我提供提问者的用户名。

但是,我应该在查询中添加什么,以便它通过外键 Answer_User_ID 打印出回答问题的人的用户名?

无论我尝试什么,它都会是空的,它将返回关联数组中的查询,并且我当前正在使用 print_r 来显示该数组。

P.S:表结构将会增长,我想知道它们是否是添加到查询以包含稍后添加的字段和多个外键的一致方式。

最佳答案

您需要另一个加入用户:

SELECT u.username, q.Question_Title, q.Question, q.Rating, 
a.Answer, a.Answer_Rating,
ua.username as AnswerUserName
FROM Questions q join
Users u
on u.id = q.User_ID join
Answers a
on a.Question_ID = q.`Question ID` join
Users ua
on ua.id = a.Answer_User_ID
WHERE q.Question_Title LIKE '%$Term%'";

关于php - 在 SQL 查询中连接 3 个或更多表,返回空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469853/

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