2010-07-16 72 views
0

我有一個名爲'company'和'user'的表。用戶表包含公司的ID。 例如像:MySQL:從其他匹配ID的表中獲取數據

A. User table 

user_id | name | company_id |status 
1  | john | 1  | active 

B. Company table 

company_id | name | status 
1   | ABC | active 

如何通過其在單個SQL查詢ID來獲得公司的名稱。 等;

$query = "SELECT name as Username, company_id as Company_Name From `user` where status='active'"; 

這將會給的結果是:

Username | Company_Name 
    john | ABC 

任何幫助或如何做到這一點的想法... 在此先感謝。

回答

10
SELECT u.name AS Username, c.name AS Company_Name 
FROM User AS u 
INNER JOIN Company AS c 
    ON u.company_id = c.company_id 
WHERE u.status = 'active' 
    AND c.status = 'active' 

如果它們沒有意義,可以隨意在WHERE子句中刪除其中一個或兩個表達式。

+0

謝謝無論如何..但我已經找到了我自己的SQL。 SELECT u.name AS Username,(SELECT c.name FROM Company as c WHERE c.id = u.company_id)as Company_Name FROM user as as WHERE u.status ='active' – Trez 2010-07-16 02:31:11

+7

我會堅持Ignacio的回答:他是使用比雙查詢解決方案效率更高的聯接。 – dmkc 2010-07-16 02:34:39