2
我有一個簡單的結構,像這樣:MySQL的左連接:從左表中的數據複製給每場比賽
挑戰表
id | title
-----------------
5 | My challenge woo
目標表
id | title | challenge_id
-------------------------------------
35 | My goal here | 5
38 | My goal here | 5
39 | My goal here | 5
40 | My goal here | 5
每一個挑戰具有多重目標。如果我嘗試像這樣:
SELECT c.id, c.title, g.id, g.title FROM challenges%s as c LEFT JOIN goals%s as g ON c.id=g.challenge_id WHERE c.id=%s
我得到的挑戰的副本,每一個目標是matche,這是噸的數據,我不想每次的。例如,結果如下:
({'g.id': 35L, 'g.title': u'My goal here', 'id': 5L, 'title': u'My challenge woo'}, {'g.id': 38L, 'g.title': u'My goal here', 'id': 5L, 'title': u'My challenge woo'}, {'g.id': 39L, 'g.title': u'My goal here', 'id': 5L, 'title': u'My challenge woo'}, {'g.id': 40L, 'g.title': u'Another goal', 'id': 5L, 'title': u'My challenge woo'})
請注意,挑戰的每個實例是字典的一部分嗎?我知道mysql沒有任何數組,但我已經嘗試CONCAT沒有任何運氣,以及其他類似的查詢,如these。
僅供參考我使用MySQLdb的/ w的蟒蛇
您期待單個SQL查詢返回分層數據集嗎? –
這基本上是首先使用'JOIN'的想法。如果你不想讓你在兩個單獨的連續查詢中查詢目標和挑戰。 – hanzi