2017-04-20 49 views
0

我在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 

我怎樣才能做到這表的數據?

+0

對於PHP問題,這裏並不是很多PHP代碼。這從上下文來看很重要。 – tadman

回答

1

一個想法是將表與自身:

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' 

當然,代替mytable你必須使用你還沒有在你的問題中提到你的正確表名。

加入是所有涉及表的Cartesion產品(Wikipedia)。在篩選結果集合後,對於那些使用正確組合的行(在這種情況下,必須過濾entry_idfield_id),才能得到您想要的結果。

由於性能方面的原因,您可能希望在列entry_idfield_id上有索引,但您會發現。

相關問題