0
我想創建一個查詢來從多個表中收集信息。這裏的基本知識,瞭解我的需求:選擇數組,子查詢和多行結果
收集的信息從表中的一個非常簡單。每個結果一行。這是主要結果,所以我們只需製作變量p.id,p.name和p.street即可調用表格道具p。
第二個表,我會稱之爲事件E也將是簡單的信息。每個道具將會有一個事件,並且它會加入p.id = e.pid。從該表中,我們需要e.event_start。
這裏是艱難的地方。第三個表格有兩層結果:我們稱之爲特徵f。功能有四列:fid,pid,feature和desc。我們將它加入到p.id = f.pid中。
我需要的是走出來這樣的結果:
[0] PID
[1] name
[2] street
[3] event_start
[4] features
[0] lighting
[0] red
[1] orange
[0] sound
[0] guitar
[1] drum
[2] keyboard
現在,我一直在網上尋找解決方案,想我可以在選擇與子查詢做到這一點:
SELECT p.id, p.name, p.street, e.event_start, (SELECT f.feature)
當然使用連接。從簡單到困難,我沒有得到它的工作。我已經看過GROUP_CONCAT,但這絕對不會給我我需要的東西......它使單個字符串等等。
有沒有辦法在單個查詢中做到這一點?如果是這樣,建議如何非常受歡迎。
謝謝你的時間。
排序,但不完全。您描述的方法會給我們多行:每個特徵/值組合的單獨一行。我需要的是一行pid,前兩個表中的所有其他信息以及特徵表中的每個特徵/值組合。每行p.id一行 – dglickler 2015-04-02 17:52:30
它是行還是列?對於不同列中的值出現在同一列中,可以在select子句中使用concat:CONCAT(f.feature,',',f.desc)。 – user4704642 2015-04-02 18:06:49
我結束了使用CONCAT_W以逗號和分號分隔的GROUP_CONCAT,它工作。 – dglickler 2015-04-02 18:21:47