mysql - 如何根据mysql中的条件更改连接类型?

标签 mysql join

我正在尝试做这样的事情:

SELECT m.id, u.first_name AS otherUser
FROM matches AS m
IF (u.id=m.user2ID)
    Inner JOIN users AS u ON u.id = m.user1ID
ELSE
    LEFT JOIN users AS u ON u.id = m.user2ID
ENDIF
WHERE m.user1ID=2 OR m.user2ID=2

现在我打算根据条件更改连接类型。我可以这样做吗?如果是那么怎么办?

更新:-我在这里想要实现的是,当特定条件为真时更改连接类型,例如:

if(a==1){
  Then do inner join
}else{
 Then do left join
}

最佳答案

如果这可能是等价的

SELECT m.id, u.first_name AS otherUser
FROM matches AS m
LEFT JOIN users  as u  
   ON ( (u.id=m.user2ID AND ON u.id = m.user1ID ) OR u.id = m.user2ID )
WHERE m.user1ID=2 OR m.user2ID=2

关于mysql - 如何根据mysql中的条件更改连接类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37071696/

相关文章:

mysql - MySQL 存储过程中的计算

php - WordPress 自定义查询不返回结果

c# - LINQ中左外连接和右外连接的实现区别

mysql - 左外连接子查询

php - 无法将表单中的数组值插入 mysql 数据库中的单行

mysql - SQL 在字符前插入/更新带有文本的字段

mysql - SQL:查找表中的所有行,其中引用原始行的另一个表中的所有行都具有特定属性

mysql - 加入未产生所需结果

MySQL 查询 UNION 返回修剪后的字符串

mysql - 如何进行选择并能够回退到默认值?