我有两个包含各种列的表,而且两个令牌都相同。 第二个表有多个具有相同tokenid的行,而其他列则不同。
现在,我需要从两个表中选择令牌ID相同的列,而在第二个表中,必须将具有相同tokenid的行转换为列。
表1:
tokenid acolumn1 acolumn2 acolumn4
1 fname1 mname1 lname1
2 fname2 mname2 lname2
表2:
id tokenid bquestion banswer
1 1 questiona answera
2 1 questionb answerb
3 2 questiona answera
4 2 questionb answerb
5 3 questionc answerc
结果应为
tokenid acolumn1 acolumn2 acolumn3 bquestion1 banswer1 bquestion2 banswer2 bquestion3 banswer3
1 fname1 mname1 lname1 questiona answera questionb answerb null null
2 fname2 mname2 lname2 questiona answera questionb answerb questionc answerc
我尝试先使用distinct查询第二个表,并将其用作子查询以与table1连接。但是数据库在表2中有超过200,000行,并且与acolumn1
选择的tokenid匹配将产生大约20000行结果。所以我的查询没有完成。是否有任何优化的方法来解决这个问题?
P.S:我想补充一点,我使用pdo
进行查询