我知道如何在连接条件中执行IF/ELSE,但是否有方法可以基于ELSE对字段使用不同的求值?

SELECT o.id, s.id
FROM orders o
RIGHT JOIN subjects s ON s.name = 'Blah'
                     AND s.group_id = IF(o.service = 'Law Services', 2, ????)

在上面,我不知道该把什么放在????
我想说的是(伪代码):
IF o.service = 'Law Services'

    JOIN subjects s ON s.name = 'Blah' AND s.group_id = 2

ELSE

    JOIN subjects s ON s.name = 'Blah'

基本上,我只想在s.group_id = 2的情况下添加连接条件。

最佳答案

SELECT o.id, s.id
FROM orders o
RIGHT JOIN subjects s ON s.name = 'Blah'
                     AND s.group_id = IF(o.service = 'Law Services', 2, s.group_id)

关于mysql - SQL-如何在JOIN条件下执行IF/ELSE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26612003/

10-12 12:48
查看更多