2017-04-03 22 views
0

変数をサブクエリに渡すことはできません。SQLはサブクエリに変数を渡します

私には2つのテーブルがあり、すべてのインタビューを受ける人が必要です。

現在の私のSQL

SELECT 
    empl.id AS id, 
    (SELECT 
     GROUP_CONCAT(interviewed_by SEPARATOR ', ') 
     FROM 
     (
      SELECT 
       interview_old.interviewed_by 
      FROM 
       interview_old 
      WHERE 
       interview_old.empl = empl.id 

      UNION 

      SELECT 
       interview.interviewed_by 
      FROM 
       interview 
      WHERE 
       interview.empl = empl.id 
     ) 
     as interviewed_by 
    ) AS interviews 
FROM 
    empl AS empl 

それはとても、私はこの部分に

SELECT 
    empl.id AS id, 
    {only here allow insert custom sql} 
FROM 
    empl AS empl 

答えて

1

を変更することはできませんあなたの質問が100%明確ではないが、あなたがすることによって開始することができ、私の完全なコードではありませんサブクエリを使用しないようにクエリを変換しますが、ちょうどLEFT JOINGROUP

SELECT 
    empl.id AS id, 
    GROUP_CONCAT(i.interviewed_by SEPARATOR ', ') 
FROM 
    empl AS empl 
LEFT JOIN (
    SELECT empl, interviewed_by 
    FROM interview_old 
    UNION 
    SELECT empl, interviewed_by 
    FROM interview 
) i 
ON i.empl = empl.id 
GROUP BY empl.id 
1

サブクエリから必要な結果を取得し、メインテーブルemplとすべてを結合し、次にempidでグループ化する必要があります。

SELECT 
     empl.id AS id, GROUP_CONCAT(interviewed_by SEPARATOR ', ') 
     FROM 
      (SELECT interview_old.empl employeeid, interview_old.interviewed_by as interviewed_by FROM interview_old 
        UNION 
      SELECT interview.empl,interview.interviewed_by 
        FROM interview) as tmp join empl AS empl on (empl.id=tmp.employeeid) 
        group by empl.id 
関連する問題