我是新來的PHP和MySQL,我嘗試了2天創建一個Web應用程序,它可以存儲有關用戶從窗體中的特定數據,並允許用戶基於類似的稍複雜的形式。我得到的表單工作,也輸入到數據庫,但我有接收來自MySQL的數據的問題,也許將來我也會與搜索功能,但我沒有多少考慮。現在我專注於從db中獲取特定數據。有多個連接的查詢和太多的結果返回
SELECT players.*,
brackets.name AS interested_in,
classes.name AS looking_for,
tags.name AS tagged_with
FROM players JOIN player_brackets ON (players.id = player_brackets.player_id)
JOIN brackets ON (player_brackets.bracket_id = brackets.id)
JOIN player_classes ON (player_brackets.player_id = player_classes.player_id)
JOIN classes ON (player_classes.class_id = classes.id)
JOIN player_tags ON (player_classes.player_id = player_tags.player_id)
JOIN tags ON (player_tags.tag_id = tags.id)
WHERE players.id = '18'
我有這個疑問,工作正常,但我從中得到的數據是在數據庫中的數據的每一個組合,其目前約100項多成果,這是幾乎一樣的。它將數據結果乘以數據庫中的字段數,例如玩家(1)*括號(3)*類別(11)*標記(5),它將輸出165行幾乎相同的數據,其中括號,類別和標籤。
如果我將結果分組players.id
,我只得到一行,但來自其他字段的數據丟失。我想得到1行將包含所有它(col可能與數組中的多個數據)。
DB有7個表 - 玩家,標籤,類,括號和3個表,其中包含玩家ID和標籤/類/括號id組合。
我一直在尋找網頁和SO但沒有真正幫助了我。如果有人能幫助我解決這個問題,那將會非常好。感謝您的回覆,我很抱歉我的英文不是我的主要語言。
你不是應該使用INNER JOIN代替JOIN? –
INNER JOIN和JOIN爲我輸出完全相同的結果。我也嘗試了SELECT DISTINCT,但它們都一樣。 –
你可以在這裏發佈你的模式嗎?還有,「GROUP BY players.id」怎麼樣? –