2013-10-10 66 views
-2

users包括列first,lastcompany查詢以一些標準合併兩個表

columns包含5列包含不同的信息和company列。

我想知道是否有一種方法,它包含相同的公司名稱作爲users表他comapanycolumns表中選擇基於以下標準users記錄,選擇該行?

我明白任何建議

喜歡的東西:

$st = $this->db->prepare("SELECT * FROM `users`,`columns` WHERE `first`=? AND `last`=? AND `users.company` = `columns.company`"); 
+1

@Mihai這不是一個非常有建設性的意見。只是你知道,OP使用隱含的'JOIN'。 – Kermit

回答

1

假設公司是唯一的,你可以使用一個LEFT JOIN

SELECT [column list] 
FROM `users` u 
LEFT JOIN `columns` c 
    ON c.`company` = u.`company` 
WHERE u.`first` = ? 
    AND u.`last` = ? 
+0

非常感謝。所以這是如何工作的,我選擇'users'作爲表'u'與'columns'表'c'結合,並且基於相關的列'company',這構造了一個結果集,然後我只使用WHERE來縮小行數?另外,爲什麼不使用簡單的JOIN或INNER JOIN?爲什麼我們在這個例子中使用了LEFT join? – AnchovyLegend

+1

當某個特定用戶可能沒有公司時,使用'LEFT JOIN'。您可以嘗試使用'JOIN'並查看它對結果集的影響。否則,你是正確的如何工作。 – Kermit

+0

感謝您的回覆。永遠不會有公司領域爲空的實例。我應該在這種情況下簡單地使用'JOIN'嗎? – AnchovyLegend