sql >> Database >  >> RDS >> Mysql

Mysql retourneert meer dan één rij

Een subquery binnen een IF-instructie kan niet meerdere kolommen retourneren. U moet de subquery samenvoegen met de resultaten en de twee afzonderlijke kolommen afzonderlijk eruit halen:

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. ORA-28001:Het wachtwoord is verlopen

  2. MySQL-foutcode:1005

  3. Converteer een object naar een string in PHP

  4. phpMyBackupPro - Een webgebaseerde MySQL-back-uptool voor Linux