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

Mysql mengembalikan lebih dari satu baris

Subquery di dalam pernyataan IF tidak dapat mengembalikan beberapa kolom. Anda harus menggabungkan subkueri ke dalam hasil, dan menarik dua kolom terpisah satu per satu:

SELECT ...
    IF(!ISNULL(td_doc_nr.value_string), sub.one, NULL) as one,
    IF(!ISNULL(td_doc_nr.value_string), sub.two, NULL) as two
FROM ...
LEFT JOIN (
    SELECT  d.doc_nr, GROUP_CONCAT(product_name SEPARATOR ','),GROUP_CONCAT(DISTINCT b.msisdn SEPARATOR ',') from documents d 
    join document_bundles b on b.document_id = d.id
    join document_products p on p.doc_bundle_id = b.id
    join document_product_cstm_fields f on f.doc_product_id = p.id
    join document_product_cstm_field_data fd on fd.cstm_field_id = f.id
    where value_string ='auto'
    group by d.doc_nr
) sub on sub.doc_nr = td_doc_nr.value_string


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan MySQL 1118 (Ukuran baris terlalu besar) saat memulihkan basis data Django-mailer

  2. Nama database MySQL default

  3. Sphinx tanpa menggunakan id auto_increment

  4. Pekerjaan berulang untuk Laravel json api

  5. Pilihan Pesanan Berdasarkan Hasil Gabung (Urutkan Percakapan pada Pesan Terakhir Terkirim)