如何从表中检索多行并在单个查询中显示组合信息?

时间:2017-04-20 04:04:31

标签: mysql

我在WordPress中使用了动态表单生成器插件。当我从表中插入此表单数据输入一些数据时。该表如下所示。

id    entry_id    field_id       slug            value
1     1           fld_7213434    name            abc
2     1           fld_5474822    father          def
3     1           fld_4459896    gender          Female
4     1           fld_6364274    village_name    ijk
20    2           fld_7213434    name            J Jahan
21    2           fld_5474822    father          Md Ali
22    2           fld_4459896    gender          Female
23    2           fld_6364274    village_name    ijk

我需要显示此表格的数据,如下所示

S.N.   name      father   gender    village_name
1      abc       def      Female    ijk
2      J Jahan   Md Ali   Female    Adabor

我该怎么做?

1 个答案:

答案 0 :(得分:1)

一个想法就是将表格加入到自身中:

txtAC_tag

当然,您必须使用您在问题中未提及的正确表名,而不是SELECT t1.entry_id `S.N.`, t1.value name, t2. value father, t3.value gender, t4.value village_name FROM mytable t1 LEFT JOIN mytable t2 ON t2.entry_id = t1.entry_id AND t2.field_id = 'fld_5474822' LEFT JOIN mytable t3 ON t3.entry_id = t1.entry_id AND t3.field_id = 'fld_4459896' LEFT JOIN mytable t4 ON t4.entry_id = t1.entry_id AND t4.field_id = 'fld_6364274' WHERE t1.field_id = 'fld_7213434'

联接是所有相关表格的Cartesion产品(Wikipedia)。在为具有正确组合的行(在这种情况下,必须过滤mytableentry_id)过滤生成的行集后,您可以得到您想要的内容。

出于性能原因,您可能希望在列field_identry_id上设置索引,但您会发现。