从表中选择结果以匹配mysql中的2行

时间:2012-10-09 11:27:46

标签: mysql sql select

我有 MySQL 表有这些字段

 ID, CID, QUESTION, ANSWER, USER

ID 是自动递增,表格中的每条记录都有 ID ;

CID 指向 ANSWER 记录的 ID

例如,我们有4条记录,2条回答问题2,Mike回答2个问题

ID  CID  QUESTION  ANSWER         USER
1    0   Test      NULL           John
2    1   NULL      This is Test   Mike    
3    0   Example   NULL           Tracy
4    3   NULL      Yes it is      Mike

我想列出哪些是Mike的答案。如何匹配同一表格中的 ID CID 字段,并打印问题以获取输出

2 个答案:

答案 0 :(得分:4)

  

我想列出哪些是迈克答案的问题。

SELECT t1.*
FROM TableName t1
LEFT JOIN TableName t2 ON t1.ID = t2.CID
WHERE t2.Answer IS NOT NULL
  AND t2.User = 'Mike';

SQL fiddle Demo

请注意,这会为您提供Mike已回答的问题列表,因此您不会在其上找到麦克:

ID CID     QUESTION         ANSWER  USER
1   0        Test             NULL   John
3   0       Example           NULL   Tracy

答案 1 :(得分:0)

select QUESTION from yourtable 
where ID in(select ID from yourtable where User = 'Mike' and answer is NOT NULL)