mysql - SQL - 如何在 JOIN 条件中执行 IF/ELSE

标签 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, ????)

在上面,我不知道在 中该放什么???

我想说的是(伪代码):

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 时添加 JOIN 条件。

最佳答案

您可以编写不带 if 的条件:

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);

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

相关文章:

sql - 此查询是否保证 'race free' PK 值?

mysql - 使用 Joomla 模块并收到错误 "No valid database connection You have > an error in your SQL syntax"

Mysql - 将字符串与另一个 sql 结果连接起来

javascript - "Fixing"来自 MySQL 的 JSON

mysql - 使用 MySQL 检查条件(日期、时间)

javascript - "Full outer join"使用 JavaScript

mysql - 我怎样才能做这个多重 JOIN 查询?

php - 使用mysql列的值指定表名

mysql - 如何组合这三个查询?

php - 使用 Codeigniter Active Record 计算行总数