我有兩個表 「客戶端」 和數據庫中的 「建議」,MySQL查詢問題與選擇
db.client => ID,名稱
db.proposal => clientID的,投標套件
select * from proposal
將選擇所有ClientID的投標套件和
我想查詢,以便它打印所有proposal.proposalID與client.name代替clientID的
我有兩個表 「客戶端」 和數據庫中的 「建議」,MySQL查詢問題與選擇
db.client => ID,名稱
db.proposal => clientID的,投標套件
select * from proposal
將選擇所有ClientID的投標套件和
我想查詢,以便它打印所有proposal.proposalID與client.name代替clientID的
另一種方法,以 「加盟」 兩個表:
SELECT proposal.proposalID, client.name
FROM client, proposal
WHERE proposal.clientID = client.id;
警告:我沒有測試這一點。
爲了理解發生了什麼,我建議您瞭解有關SQL聯接的更多信息。 一些鏈接,讓你開始:
http://www.w3schools.com/sql/sql_join.asp
避免使用此舊式語法。對於像這樣的非常簡單的查詢來說沒問題,但對於更復雜的查詢會變得混亂。使用'JOIN ... ON'可以將連接標準保留在相關表格的旁邊,並使'WHERE'子句僅包含過濾標準。 – nnichols 2012-03-16 23:12:45
我剛剛注意到這個答案已被接受。我寫這個來顯示另一種方法(除了使用'JOIN'關鍵字),但是,正如nnichols所指出的,我建議避免使用這種語法,特別是對於複雜的語句。 – 2012-03-16 23:33:00
只需使用一個join:
SELECT client.name, proposal.proposalID
FROM client
JOIN proposal
ON proposal.clientID = client.id
;
開始閱讀有關SQL連接 – 2012-03-16 22:54:11
其迷惑我,我是考慮到它會使用內部連接,但令人困惑,我認爲內連接不會解決我的問題。其他的解決方案,我必須在PHP中創建一個循環來獲取每個id的名稱,這顯然是最糟糕的想法 – user794624 2012-03-16 22:54:19
@ user794624,因爲Mark建議您最好閱讀關於連接的更多信息。雖然我不會在這裏使用'INNER'加入,但我會使用一個。 – SeeSharp 2012-03-16 22:56:41