0

我有 2 个表,其中一个包含带有重复使用的问题列表编号、问题编号和问题的问题,另一个包含答案并具有问题编号、唯一调查编号和答案,我试图将它们结合起来以识别缺失的答案。

q.qid 和 a.question 都是问题编号

q.sid 是一个重复使用的问题列表编号

a.sid 是唯一的调查编号

SELECT * FROM question q
LEFT JOIN answers a ON q.qid = a.question
WHERE q.sid=3 AND a.sid =2259
ORDER BY q.qid

问题是我们的立场,因为我只要求出现在调查 id 2259 中分配了答案的问题。

但是我想列出来自 q.sid 3 的所有问题,并包括来自 a.sid = 2259 的答案(但不是 a.sid 2260 或 2261...,它们使用相同的 q.sid 3)并包括一个 NULL 值,如果没有条目。

这可能吗

4

1 回答 1

2

如果您将 WHERE 条件的相关部分移动到 JOIN 条件中,它就可以工作,即仅与 sid=2259 的行连接。

SELECT *
FROM question q
LEFT JOIN answers a ON q.qid=a.question AND s.sid=2259
WHERE q.sid=3
ORDER BY q.qid
于 2012-10-20T09:13:09.997 回答