簡體   English   中英

MySQL - LEFT JOIN 與 GROUP_CONCAT 與 3 個表 - 未知列

[英]MySQL - LEFT JOIN with GROUP_CONCAT with 3 tables - unknown column

我正在嘗試加入 3 個表並執行 GROUP_CONCAT,但是得到

Unknown column 'program_outcome.program_outcome_pk' in 'field list'

詢問:

SELECT program_outcome.program_outcome_pk, 
       program_outcome.program_outcome, 
       GROUP_CONCAT(program_outcome_unit_outcome_lookup.unit_outcome_pk) unit_outcome_pks, 
       GROUP_CONCAT(unit_outcome.unit_outcome) unit_outcomes 
FROM   program_outcome po 
       LEFT JOIN program_outcome_unit_outcome_lookup pouo 
               ON po.program_outcome_pk = pouo.program_outcome_fk
       LEFT JOIN unit_outcome uo 
               ON pouo.unit_outcome_fk = uo.unit_outcome_pk 
GROUP  BY po.program_outcome_pk, 
          po.program_outcome

我正在尋找的結果是這樣的:

+----------------------------------+--------------------------------------------------+
| program_outcome.program_outcome  |  unit_outcome.unit_outcome                       |
+----------------------------------+--------------------------------------------------+
| program outcome 1                | unit_outcome 2, unit_outcome 5                   |
| program outcome 2                | unit_outcome 7, unit_outcome 1                   |
| program outcome 3                | unit_outcome 1, unit_outcome 9, unit_outcome 11  |
+----------------------------------+--------------------------------------------------+

數據庫小提琴

您需要使用您在fromjoin claues 中定義的別名:

SELECT po.program_outcome_pk, 
       po.program_outcome, 
       GROUP_CONCAT(pouo.unit_outcome_fk) unit_outcome_pks, 
       GROUP_CONCAT(uo.unit_outcome) unit_outcomes 
FROM   program_outcome po 
       LEFT JOIN program_outcome_unit_outcome_lookup pouo 
               ON po.program_outcome_pk = pouo.program_outcome_fk
       LEFT JOIN unit_outcome uo 
               ON pouo.unit_outcome_fk = uo.unit_outcome_pk 
GROUP  BY po.program_outcome_pk, 
          po.program_outcome

您可以刪除別名,因為您的表沒有沖突的名稱,這是一個基於您的小提琴的有效查詢:

SELECT program_outcome_pk, 
       program_outcome, 
       GROUP_CONCAT(unit_outcome_pk) unit_outcome_pks, 
       GROUP_CONCAT(unit_outcome) unit_outcomes 
FROM   program_outcome po 
       LEFT JOIN program_outcome_unit_outcome_lookup pouo 
               ON po.program_outcome_pk = pouo.program_outcome_fk
       LEFT JOIN unit_outcome uo 
               ON pouo.unit_outcome_fk = uo.unit_outcome_pk 
GROUP  BY po.program_outcome_pk, 
          po.program_outcome

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM