因此,我剛開始進入SQL編程,並着手與兩個表和一個數據透視表建立多對多關係。我將通過一個API發送這些信息,在我的前端以簡單的方式循環訪問數據將會很酷。將多個行組合到一箇中,從多到多
的表格看起來像以下:
story_template
id, title, body, author
空白
id, title, description
blanks_story_te mplate(透視)
id, sid, bid, position
我已經成功地獲取我需要使用此查詢的信息:
SELECT
st.title, st.body, st.author,
b.*,
bst.position
FROM story_template AS st
INNER JOIN blanks_story_template AS bst ON st.id = bst.sid
INNER JOIN blanks AS b ON bst.bid = b.id
ORDER BY bst.position
它,結果如下:
所以我想知道的是,是否有可能將多個ro ws合成一個?因此,例如上述結果會是什麼樣子:
st.id, title, body, author, b.id, title, description, position
--------------------------------------------------------------
1 title body author 1, title, description, position
2, title, description, position
3, title, description, position
2 title body author 1, title, description, position
2, title, description, position
3, title, description, position
我已經調查GROUP_CONCAT(),如果所有列將具有值從那時起,我就能夠給他們一個數組分割,將工作。但它並沒有真正幫助我,因爲如果blank.description
在一行中爲NULL,那麼我將失去哪個blank.id
屬於..
這是可以在查詢中使用,還是必須在發送前解析它它與API?
我很抱歉,如果有什麼似乎模糊,如果你需要我澄清任何事情,我會很樂意這樣做。
可以嘗試更改'INNER JOIN爲B空白ON bst.bid = b.id'到'RIGHT OUTER JOIN空白爲B ON bst.bid = b.id'? –
在PHP中更好地抑制重複值:請參見[this question](http://stackoverflow.com/questions/34751841/return-null-instead-of-repeated-value-in-certain-columns/34752372#34752372) – trincot
@ DarshanMehta它並沒有影響結果。 trincot所以沒有好的方法在SQL中做到這一點? – jzasnake