我正在使用MySQL 5.1
这就是我想要做的事情:
SELECT name, gender, age, partners.rate_M, partners.rate_F
FROM users INNER JOIN partners ON users.id = partners.M_id
目前我所拥有的是:
SELECT name, gender, age, partners.rate_M, partners.rate_F
FROM users INNER JOIN partners
ON (users.id = partners.M_id OR users.id = partners.F_id)
这会减慢我的系统。
M_id中的M是性别,那么我怎样才能使M动态?
users.gender + '_id' = M_id or F_id
答案 0 :(得分:0)
你不能直接这样做,所以你必须使用间接机制。
一个简单的选项是UNION:
SELECT u.name, u.gender, u.age, p.rate_M, p.rate_F
FROM users AS u INNER JOIN partners AS p ON u.id = p.M_id AND u.gender = 'M'
UNION
SELECT u.name, u.gender, u.age, p.rate_M, p.rate_F
FROM users AS u INNER JOIN partners AS p ON u.id = p.F_id AND u.gender = 'F';