mysql中的IF语句JOIN - 条件成功时添加多个条件

Sah*_*hal 2 mysql

情况如下: -

我想加入2桌.让我们说表ab

SELECT * 
FROM a 
JOIN b ON a.id = b.id AND b.status = '1' 
Run Code Online (Sandbox Code Playgroud)

这是问题所在:

b.status = '1'
Run Code Online (Sandbox Code Playgroud)

应该只在添加时添加

b.stage in (1, 3, 5, 6, 8)
Run Code Online (Sandbox Code Playgroud)

如何在ON条款中添加这样的条件?

喜欢

ON a.id = b.id 
CASE
   IF (b.stage in (1, 3, 5, 6, 8))
THEN
   AND b.status = '1'
END
Run Code Online (Sandbox Code Playgroud)

Boh*_*ian 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')
Run Code Online (Sandbox Code Playgroud)