2

これがケースです:-

2つのテーブルに参加したいです。テーブルaと言ってみましょうb

SELECT * 
FROM a 
JOIN b ON a.id = b.id AND b.status = '1' 

問題は次のとおりです。

b.status = '1'

場合にのみ追加する必要があります

b.stage in (1, 3, 5, 6, 8)

ONそのような条件を句に追加するにはどうすればよいですか?

お気に入り

ON a.id = b.id 
CASE
   IF (b.stage in (1, 3, 5, 6, 8))
THEN
   AND b.status = '1'
END
4

1 に答える 1

5

あなたの条件は論理的に「いずれかのステージがリストにないか、ステータスが 1 である」と同じです。

SELECT * 
FROM a 
JOIN b ON a.id = b.id 
    AND (b.stage not in (1, 3, 5, 6, 8) OR b.status = '1')
于 2013-03-14T12:18:49.600 に答える