2016-02-02 141 views
-1

我使用3表模型來構建一種標籤系統。MySQL加入和合並多個結果

表1:客戶端

  • CLIENT_ID(PK)
  • CLIENT_NAME

表2:工作場所

  • workplace_id(PK)
  • workplace_name

表3:ClientWorkplace:

  • CLIENT_ID(PK)
  • workplace_id(PK)

一個客戶被允許具有多個工作場所。以下是表3中的示例數據:

  • 1 | 1
  • 1 | 3
  • 1 | 5

我建立了插入和刪除客戶端頁面成功。目前,我正在構建顯示當前客戶名稱和複選框的編輯客戶端頁面,輸入&工作地點名稱作爲所有工作類型的標籤(哪些與當前客戶端有關係將被檢查)。但我不知道正確的SQL查詢語句。

的預期導致了特定的client_id 1應該主要是:

cliend_id:1 | client_name:「我的客戶名稱」| workplace_ids:「1,3,5」

請幫忙!非常感謝你 !

+0

您能告訴我們您的預期產量,以免混淆嗎?這看起來像一系列簡單的連接。 –

回答

0

完整的參考,您可以使用JOIN小號獲取它們。

SELECT workplace_name, client_name 
FROM Workplaces w 
INNER JOIN ClientWorkplace cw ON cw.workplace_id = w.workplace_id 
INNER JOIN Clients c ON cw.client_id = c.client_id 
ORDER BY w.workplace_id 

它將獲取所有工作場所和所有客戶。運行循環並根據需要處理數據。

+0

非常感謝您的回答! – LocNguyen

0

您可以使用它來加入你的3個表

SELECT c.client_name, w.workplace_name 
FROM Clients c 
LEFT JOIN ClientWorkplace cwp ON cwp.client_id = c.client_id 
LEFT JOIN Workplaces w ON w.workplace_id = cwp.workplace_id 

下面是MYSQL JOIN Syntax

+0

非常感謝您的回答! – LocNguyen