一个表中的值作为另一个表上的字段名 - 复杂查询

时间:2018-04-03 18:35:11

标签: mysql sql pivot-table

我正在尝试进行连接两个表的查询。此连接用于CSV输出,并且要求一个表的值为CSV的列标题,实际值为显示1或0的值。

我可以通过使用PHP循环遍历第一个表并对循环的每次迭代进行查询来实现这一点。但是由于我们正在讨论数千条记录,因此在服务器上这将太难了。我希望通过一个查询就可以实现。

例如,我们有两个表。 tblSchedule和tblResults

tblSchedule包含以下列..

SID (unique)
NameVal (name of the speaker varchar(250))

tblResults有以下几列..

RID (unique)
SID (foreign key)
FirstName (name of participant varchar(250)))
LastName (name of participant varchar(250)))

之前,我需要提供的所有CSV输出都是tblResults并加入tblSchedule ..因此输出了参与者和演讲者姓名。

现在..这很糟糕,就是想要一个带有列名的CSV输出为每个扬声器。记录是tblResults中的项目,如果该特定参与者在tblSchedule中看到该发言者,则在该列中显示1,否则显示0。

我在tblSchedule中有160个条目,因此这将是160列,而我在tblResults中有大约14,000个条目。

我可能会过度思考这一点。

所以CSV看起来像这样......

FirstName, LastName, Speaker1, Speaker2, Speaker3,..... Speaker160
Joe, Schmoe, 0, 0, 1,.....0

0 个答案:

没有答案