說我有3個表。表1包含client_id和client_name。表2包含client_id,client_catid_1和client_catid_2。這些表根據client_id進行連接。現在第三個表包含category_id和category_name。如何根據類別ID加入第三個表並獲取category_name?例如:3表加入MySQL
表1:
client_id | client_name
-----------------------
121231231 | Some name
345234666 | Another Name
-----------------------
表2:
client_id | client_catid_1 | client_catid_2
-------------------------------------------
121231231 | 22 | 79
345234666 | 34 | 566
------------------------------------------
表3:
category_id | category_name
----------------------------
22 | category 22
34 | category 34
79 | category 79
566 | category 566
----------------------------
然後輸出:
client_id | client_name | client_cat1 | client_cat2
---------------------------------------------------
121231231 | Some name | category 22 | category 79
345234666 | Another | category 34 | category 566
---------------------------------------------------
而當前查詢:
SELECT client.*,
cat1id.client_catid_1 as cat1,
cat2id.client_catid_2 as cat2
FROM tb_clients AS client
LEFT JOIN tb_clients_categories cat1id ON client.client_id = cat1id.client_id
LEFT JOIN tb_clients_categories cat2id ON client.client_id = cat2id.client_id
WHERE client.client_id = 65447
另外,我不是問數據庫標準化和設計。我只是這樣說的,因爲人們往往會錯過你的問題,並開始試圖告訴你更好的數據庫設計。我明白這一點。我正在處理一些我原本沒有放在一起的東西,並且改變數據庫不是一種選擇!
在此先感謝!
這是完美的,但一個問題...是否可以說:WHERE client_cat1 =「東西」? – mike 2010-02-18 16:31:14
@mike:靠你的命令! :) – 2010-02-18 16:36:16
完美!那是什麼讓我難住。我不斷收到「未知專欄」。謝謝! – mike 2010-02-18 16:40:14