Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql trả về nhiều hơn một hàng

Một truy vấn con bên trong câu lệnh IF không thể trả về nhiều cột. Bạn sẽ cần phải nối truy vấn con vào kết quả và kéo ra hai cột riêng biệt:

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. Tôi có thể bảo vệ trang web của mình bằng cách nào ngoại trừ việc tiêm XSS và Sql?

  2. Từ khóa MySQL AS

  3. Bản đồ mối quan hệ ngủ đông / Tăng tốc độ chèn hàng loạt

  4. MySQL # 1243 Trình xử lý câu lệnh chuẩn bị không xác định (stmt) được cung cấp cho EXECUTE

  5. Tệp và cơ sở dữ liệu để tăng hiệu quả lưu trữ trong ứng dụng trò chuyện