sql >> データベース >  >> RDS >> Mysql

Mysqlは複数の行を返します

    IFステートメント内のサブクエリは、複数の列を返すことはできません。サブクエリを結果に結合し、2つの別々の列を個別に引き出す必要があります:

    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. スクラブルワードファインダー:トライの作成、トライの保存、トライの使用?

    2. セグメントに障害が発生することなく、Ruby1.8.7を搭載したOSX Lionでgemインストールを機能させるにはどうすればよいですか?

    3. SQLクエリの結果が期待どおりに戻らないのはなぜですか?

    4. OracleのCURRENT_TIMESTAMP()関数