有没有办法在没有第二个查询的情况下执行此条件JOIN?

时间:2012-10-08 22:41:39

标签: mysql sql

这是我的疑问:

SELECT *
FROM `messages` m
JOIN questions q ON m.question_response = q.question_id 
WHERE m.message_id = '$message_id'

问题是并不总是需要JOIN,只有m.question_response的值不是0时才需要。有没有办法在这种条件下进行JOIN而不需要求助于第二次查询?

2 个答案:

答案 0 :(得分:1)

我相信你可以加入多个条件,并允许它们是静态的。

SELECT *
FROM `messages` m
JOIN questions q 
    ON m.question_response = q.question_id 
    AND m.question_response <> 0
WHERE m.message_id = '$message_id'

答案 1 :(得分:0)

SELECT m.*
FROM `messages` m,`questions` q 
WHERE m.message_id = '$message_id' 
   AND m.question_response = 0 
   OR (m.question_response <> 0 AND m.question_response = q.question_id)