Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySql bergabung dengan beberapa tabel dengan nomor baris yang berbeda

Mengingat data Anda, kueri ini harus mengembalikan apa yang Anda inginkan:

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;

Jika mau, Anda dapat menghapus duplikat menggunakan 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;

Namun, biasanya lebih baik untuk memperbaiki kueri agar tidak menghasilkan duplikat.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mempertahankan Garis Miring Balik saat Melepas Kutipan di MySQL – QUOTE()

  2. acara mysql tidak berfungsi

  3. menghindari injeksi MySQL dengan kelas Zend_Db

  4. Doctrine DBAL setParameter() dengan nilai array

  5. Regex str_replace