Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql връща повече от един ред

Подзаявка в израза IF не може да върне множество колони. Ще трябва да присъедините подзаявката към резултатите и да извадите двете отделни колони поотделно:

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. Достъп до коментарите на полето MySQL с PHP

  2. RoR:как да тествам приложението си срещу множество бази данни?

  3. Грешка при създаването на таблица

  4. Изтриване на записи, по-стари от месец/30 дни

  5. Броят на колоните в MySQL не съвпада с броя на стойностите на ред 1