如何使用列名作为变量在SELECT语句中创建新列?

时间:2012-02-13 04:14:07

标签: mysql

我正在使用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

1 个答案:

答案 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';