sql >> Databáze >  >> RDS >> Mysql

Mysql vrátí více než jeden řádek

Poddotaz uvnitř příkazu IF nemůže vrátit více sloupců. Budete muset připojit poddotaz do výsledků a vytáhnout dva samostatné sloupce jednotlivě:

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. Získání návratové hodnoty z JDBC MSSQL

  2. Nasazení vysoce dostupných databází a clusterů pomocí ClusterControl

  3. použití funkce rownum s> přihlásit oracle

  4. PacketTooBigException při provádění sonarové analýzy