sql >> Database >  >> RDS >> Mysql

MySql voegt zich bij meerdere tabellen met verschillende rijnummers

Gezien uw gegevens zou deze zoekopdracht moeten opleveren wat u wilt:

SELECT t1.*,
       GROUP_CONCAT(t2.info SEPARATOR '|') AS info,
       GROUP_CONCAT(t2.data SEPARATOR '|') AS data
FROM table1 t1 LEFT JOIN
     join j
     ON j.id_a = t1.id_a LEFT JOIN
     table2 t2
     ON t2.id_b = j.id_b
WHERE t1.id_a = ?
GROUP BY t1.id_a;

Als je wilt, kun je de duplicaten verwijderen met DISTINCT :

SELECT t1.*,
       GROUP_CONCAT(DISTINCT t2.info SEPARATOR '|') AS info,
       GROUP_CONCAT(DISTINCT t2.data SEPARATOR '|') AS data
FROM table1 t1 LEFT JOIN
     join j
     ON j.id_a = t1.id_a LEFT JOIN
     table2 t2
     ON t2.id_b = j.id_b
WHERE t1.id_a = ?
GROUP BY t1.id_a;

Meestal is het echter beter om de zoekopdracht te corrigeren, zodat deze geen duplicaten genereert.




  1. MySQL Selecteer meerdere WAARDEN

  2. Hoe de n-de tekenreeks in een generiek woord of zin met een spatiescheidingsteken te krijgen?

  3. Informatie krijgen over alle soorten gegevens die in een bepaald pakket zijn gedeclareerd?

  4. Waarschuwing #1264:fout buiten bereik in mysql