Ich habe diese drei Tabellen mit ihren Beziehungen.MySQL Abfrage Kombination von CONCAT, GROUP_CONCAT und DISTINCT
people
people_id (int)
people_name (varchar)
comic
comic_id (int)
comic_name (varchar)
ref_author
comic_id (int)
people_writer_id (int)
people_illust_id (int)
Die Beziehungen auf ref_author sind wie folgt.
- comic_id bezieht sich auf comic_id Comic
- Beide people_writer_id und people_illust_id bezieht sich auf person_id Menschen, als irgendwelche besonderen Menschen auf person_id ein Schriftsteller, Illustrator sein könnte, oder beides.
- Wenn es, beispielsweise aus zwei Autoren und einen Illustrator, würde ich die Tabelle mit dem ersten Schriftsteller und Illustrator einfügen, dann dem zweiten Autor und den ersten Illustrator (die Lücke mit doppelter Füllung)
Mit dieser Abfrage
SELECT distinct SQL_CALC_FOUND_ROWS
c.comic_name, concat (group_CONCAT(distinct pa.people_name separator '/'), ', ', group_CONCAT(distinct pb.people_name separator '/')) as 'author'
FROM ref_author ra
inner join comic c on c.comic_id = ra.comic_id
inner join people pa on pa.people_id = ra.people_writer_id
inner join people pb on pb.people_id = ra.people_illust_id
group by c.comic_name
ich könnte diese Art von Ergebnis angezeigt werden soll.
comic_name author
17+ Kharisma Jati, Kharisma Jati
1SR6 Muhammad Fathanatul Haq, Muhammad Fathanatul Haq
304th Study Room Felicia Huang, Felicia Huang
4HERO Arief Prasojo, Arief Prasojo
5 cm Donny Dhirgantoro, Is Yuniarto
....
Degalings Pandji Pragiwaksono, Pandji Pragiwaksono/Shani ...
Das Problem bei dieser Abfrage wird der Autor Spalte schön an, wenn nur ein Volk auf eine Position bezeichnet, aber wenn man die Menschen in zwei Positionen bezeichnet, wird sie als Duplikate angezeigt werden soll. Mein Ziel ist es, die Daten ohne solche Duplikate anzuzeigen.
comic_name author
17+ Kharisma Jati
1SR6 Muhammad Fathanatul Haq
304th Study Room Felicia Huang
4HERO Arief Prasojo
5 cm Donny Dhirgantoro, Is Yuniarto
....
Degalings Pandji Pragiwaksono, Shani ...
Wie mache ich das? Wo ändere ich die Abfrage oder gibt es einen Fehler in der Tabelle?
UPDATE: Ich habe es geschafft, dieses Kunststück mit der Abfrage von http://stackoverflow.com/questions/9485901/mysql-concat-ws-outout-duplicates zu erreichen, aber es zeigt maximal zwei Namen an. –