2010-07-08 52 views
2

我有2个表中的行:加入MySQL中2个表,返回不相关

表1:问题(ID,问题,日期)

表2:答案(ID,question_id,答案,日期)

一个问题可以有1个以上的答案,有些问题没有答案。我想只输出悬而未决的问题

SELECT * FROM问题,答案查询WHERE questions.id!=answers.question_id group by questions.id不起作用

有人能帮助新手喜欢我,我很迷失在这一切MySQL的东西。

回答

1
SELECT id, question, date 
FROM questions q 
WHERE NOT EXISTS 
    (SELECT * FROM answers a 
    WHERE a.question_id = q.id) 

OR

SELECT id, question, date 
FROM questions q 
LEFT JOIN answers a ON a.question_id = q.id 
WHERE a.id IS NULL 

OR

SELECT id, question, date 
FROM questions q 
WHERE q.id NOT IN 
    (SELECT question_id FROM answers WHERE question_id IS NOT NULL) 
           /* If question_id can't be NULL this is not needed*/ 
+0

谢谢。没想到会这么快。再次感谢你,它的工作原理。爱MySQL – olegb 2010-07-08 15:49:56

2
SELECT Q.id, Q.question, Q.date 
FROM questions Q LEFT JOIN answers A ON (Q.id = A.question_id) 
WHERE A.id IS NULL 
0

SELECT * FROM 问题,答案 WHERE answers.answer = null或answers.answer = “”;