我有一个 SQL 查询,它根据条件以不同的方式连接表。
SELECT m.id, u.first_name AS otherUser
FROM matches AS m
IF (u.id=m.user2ID)
LEFT 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
matches
是一个具有整数列 user1ID 和 user2ID 的表。users
是一个包含我的 Web 应用程序用户的表。users
有一个名为 的 VARCHAR 字段first_name
。
此查询的目的是获取与当前用户匹配的用户名。
但是,MySQL 返回此错误:
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for
the right syntax to use near 'IF (u.id=m.user2ID) LEFT JOIN users
AS u ON u.id = m.user1ID ELSE LEFT JOIN user' at line 3
为什么?