1

这是我的查询:

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

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

4

2 回答 2

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'
于 2012-10-08T22:51:00.397 回答
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)
于 2012-10-08T23:05:35.053 回答