【发布时间】:2017-03-30 20:29:20
【问题描述】:
我希望合并两个 MySQL 查询,以便返回共同的结果,所以我知道我不想在这个查询上使用 UNION。我尝试编写一个子选择语句,但没有成功
第一个查询:
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。
我意识到这应该很容易,但我很可能想多了和/或遗漏了一些东西。
【问题讨论】:
标签: mysql sql join inner-join