gpt4 book ai didi

mysql - 两次MySQL查询的共同结果

转载 作者:行者123 更新时间:2023-11-30 22:01:51 25 4
gpt4 key购买 nike

我想合并两个 MySQL 查询,以便它返回共同的结果,所以我知道我不想在这个查询上使用 UNION。我尝试编写一个 subselect 语句,但没有成功

第一个查询:

SELECT s.ses_id, h.page, m.question, m.answer FROM session s
INNER JOIN history h on h.ses_id = s.ses_id
INNER JOIN multiple m on m.ses_id = s.ses_id
WHERE m.question = 4 and m.answer = 3 and h.page = 4

第二个查询:

SELECT s.ses_id, h.page, m.question, m.answer FROM session s
INNER JOIN history h on h.ses_id = s.ses_id
INNER JOIN multiple m on m.ses_id = s.ses_id
WHERE m.question = 114 and m.answer = 1 and h.page = 114

合并查询失败:

SELECT s.ses_id FROM session s, multiple, history h
JOIN (
SELECT session.ses_id
FROM session, history, multiple
WHERE multiple.question = 114 and multiple.answer = 1 and history.page = 114 and history.ses_id = session.ses_id and multiple.ses_id=session.ses_id
) q1 ON q1.ses_id = s.ses_id
WHERE s.interview = 'lifestyle' and s.finished = 'y' and multiple.page=4 and multiple.answer = 3 and h.page = 4 and h.ses_id = s.ses_id and multiple.ses_id=s.ses_id

多表包含问题和答案,我希望找到那些用这些特定答案回答了这两个问题的人的 ID。

我意识到这应该很容易,我很可能想得太多和/或遗漏了什么。

最佳答案

对于第二个问题/答案组合,您只需将 historymultiple 表分别连接一次。

SELECT s.ses_id,
m1.question, m1.answer, h1.page,
m2.question, m2.answer, h2.page
FROM session s
INNER JOIN history h1
ON h1.ses_id = s.ses_id AND h1.page = 4
INNER JOIN multiple m1
ON m1.ses_id = s.ses_id
AND m1.question = 4 AND m1.answer = 3
INNER JOIN history h2
ON h2.ses_id = s.ses_id AND h2.page = 114
INNER JOIN multiple m2
ON m2.ses_id = s.ses_id
AND m2.question = 114 and m2.answer = 1
WHERE s.interview = 'lifestyle' and s.finished = 'y'

关于mysql - 两次MySQL查询的共同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43127738/

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