我有3個mysql表(動物,類別和animal_2_category)。每個動物可以有0-n種類(例如魚,寵物,昆蟲,食肉動物,「可以飛」等)。Mysql排序的彙編值
表 「動物」(ID,姓名)
1, dog
2, cat
3, bee
...
表 「類別」(ID,姓名)
1, pet
2, insect
3, mammal
4, fish
5, can fly
...
表 「animal_2_category」(animal_id,CATEGORY_ID)
1, 1
1, 3
2, 1
2, 3
3, 2
3, 5
...
我現在需要的是所有類別組合的列表。 下面的查詢工作:
SELECT CONCAT_WS("-", x.name, c.name)
FROM animal_2_category a2c1
JOIN animal_2_category a2c2 ON a2c1.animal_id = a2c2.animal_id
JOIN category c ON c.id = a2c2.category_id´
JOIN categories x
GROUP BY a2c2.category_id
該查詢西港島線返回如下:
- 寵物哺乳動物
- 哺乳類寵物
- 昆蟲能飛
問題這是,我得到dublicate條目「寵物哺乳動物」和「哺乳動物寵物」。 我怎樣才能修改查詢,僅得到其中之一,例如:
- 寵物哺乳動物
- 昆蟲能飛,以避免重複對
非常好的問題 –
沒有必要來連接這些數據。事實上,粗略地說,在CONCAT或GROUP_CONCAT需要作爲答案的一部分的SQL中沒有問題。 – Strawberry
只需添加一個要求,即一個結果的ID必須低於另一個結果的ID。 – Strawberry