sql >> Databasteknik >  >> RDS >> Mysql

Mysql returnerar mer än en rad

En underfråga i en IF-sats kan inte returnera flera kolumner. Du måste ansluta underfrågan till resultaten och dra ut de två separata kolumnerna individuellt:

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. Hur skiljer sökresultaten åt efter kategori? MySQL + PHP

  2. Skapa strängindex med kod först

  3. Row Goals, del 3:Anti Joins

  4. Introduktion till Multi-Statement Table-Valued Functions (MSTVF) i SQL Server