Mysql SQL-如何在联接条件中执行IF/ELSE
我知道如何在连接条件中执行IF/ELSE,但是否有一种方法可以基于ELSE对字段使用不同的求值Mysql SQL-如何在联接条件中执行IF/ELSE,mysql,sql,join,Mysql,Sql,Join,我知道如何在连接条件中执行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, ????) 在上面,我不知道在?? 我想说的是(伪代码): 基本上,我只想在s.group\u 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\u 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)
SELECT o.id, s.id
FROM orders o RIGHT JOIN
subjects s
ON s.name = 'Blah' AND
(o.service <> 'Law Services' or s.group_id = 2);
选择o.id、s.id
从命令到右连接
科目
关于s.name='Blah'和
(o.服务“法律服务”或s.集团_id=2);
这可能值得一试:
SELECT o.id, s.id
FROM orders o
RIGHT JOIN subjects s
ON s.name = 'Blah'
AND s.group_id = (CASE WHEN o.service = 'Law Services' THEN 2 ELSE s.group_id END)
SELECT o.id, s.id
FROM orders o
RIGHT JOIN subjects s
ON s.name = 'Blah'
AND s.group_id = (CASE WHEN o.service = 'Law Services' THEN 2 ELSE s.group_id END)