我遇到了麻煩,提出了所需的查詢來做我以後的事情。MYSQL - 加入三個表(連續?)
我有三個表是這樣的:
client_files
-----------------------
client_id file_id
-----------------------
1 2
1 3
1 6
2 1
2 2
3 5
files
-------------------------------------------------
ID file_name file_category_id
-------------------------------------------------
1 file1.ext 1
2 file2.ext 3
3 file3.ext 1
4 file4.ext 1
5 file5.ext 2
6 file6.ext 2
file_categories
--------------------------
ID category_name
--------------------------
1 category1
2 category2
3 category3
我試圖建立一個查詢將返回文件名和類別名稱爲特定客戶ID。
我期待的結果是(來自ID):
-----------------------------
file_name category_name
-----------------------------
file2.ext category3
file3.ext category1
file6.ext category2
據我瞭解,我需要加入client_files
表到files
表,然後到file_categories
表。我看過其他的例子,它們將第三張表格連接在一起,然後相信這是一種不同的情況。
這相當於我想到的結果,但結果幾乎是隨機的,有些文件返回時沒有鏈接,有些文件丟失。
SELECT
f.file_name,
fc.category_name
FROM
client_files cf,
files f,
file_categories fc
WHERE
cf.client_id = 1 AND f.ID = cf.file_id AND fc.ID = f.file_category_id;
請參閱[文件](HTTP://開發.mysql.com/doc/refman/5.7/en/join.html)。 –
@JonStirling我在儘可能多地閱讀,但我無法按照我嘗試做的方式讓我的頭腦加入三個。我不明白爲什麼我得到這個看似隨機的結果。 – user2924019
您的查詢將爲我返回正確的結果:http://www.sqlfiddle.com/#!9/cc3bc9/1 – Barmar