2

情况如下:-

我想加入 2 张桌子。让我们说桌子ab

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 回答