我有一個用戶表,一個作業表和一個文件表;確切的表名是user_table
,jobs
和files
。如何連接或左連接三個表以從其中一個表中獲取數據?
文件表和作業表具有一個公共字段,而作業表和用戶表具有公共字段,但所有3個都沒有公共字段。所以文件表有jobid
,它等於id
from jobs表,而作業表有userid
,它等於userid
from users表。
示例記錄
files table
id name path jobid
-------------------------------------------
7 test.gif uploads/test.gif 130
jobs table
id userid ponumber date
------------------------------------------------
130 1013 2322 10/14/2013 2:55:1pm
user_table table
userid username email fname sname
-------------------------------------------------------
1013 username [email protected] first last
文件7屬於就業130和作業130屬於用戶1013這樣一個頁面上顯示的文件時,我想也顯示該文件的擁有者,但兩家桌子。
我該怎麼做?我沒有嘗試過任何東西,因爲我是MySQL編程的新手。如果我嘗試和猜測的東西,它可能會去是這樣的:
SELECT *
FROM user_table u
INNER JOIN jobs j USING (userid)
LEFT JOIN files f ON j.id = f.jobid
這可能是這樣的胡亂猜測,它甚至沒有值得一提的。
這是什麼結束了工作。不知道我選擇正確的答案是正確的。我可能應該提到,即使我從多個表中選擇了多個列,也需要根據文件表中的一條記錄取回一行。 SELECT files。*,jobs。*,user_table。* FROM files LEFT JOIN作業ON files.jobid = jobs.id LEFT JOIN user_table ON jobs.userid = user_table.userid WHERE files.id = $ id – leoarce