我使用的MySQL 5.1如何使用列名作为变量在我的SELECT语句中创建新列?
这里就是我想要做的事:
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
被选定列来自合作伙伴的表? – 2012-02-13 04:18:41
users.id是用户表的pk,partners.M_id和partners.F_id是FK引用users.id,伙伴(rowid,f_id,m_id,rate_m,rate_f,score_m,score_f ...更多) – 2012-02-13 04:29:28
它几乎总是有利于显示表格的大纲模式。直接相关的列,主键和表格之间的任何PK/FK关系是最感兴趣的。合作伙伴表似乎包含列(M_id,F_id,Rate_M,Rate_F,...);没有给出PK,但可能是(M_id,F_id)的组合。 Users表似乎包含列(Id,Name,Gender,Age,...); Id可能是PK。从Partners.M_id到Users.Id有一个FK,而另一个从Partners.F_id到Users.Id。这是对的吗? (我总是怀疑'年龄'栏目。) – 2012-02-13 04:32:20