2013-08-12 42 views
0

我試圖獲取所有與公司相關聯繫的公司的列表。出於理由,我假設每個公司只有一個聯繫人。我嘗試使用以下命令:如何訪問子選項中的外部列

SELECT companies.id as company_id, contacts.name, contacts.email 
FROM companies, (SELECT * FROM contacts WHERE companyId = company_id LIMIT 1) as contacts 

但我發現了這個錯誤:

1054 - 中未知列'COMPANY_ID「where子句」

我已經試過幾乎所有在列和桌子上出現混淆的變化,但整天早上沒有任何運氣。有任何想法嗎?

感謝

+0

您是否嘗試過使用全表名稱而不是別名? – SWeko

+0

like companies.id?是的,但我得到了同樣的錯誤。我有一種感覺,它可能只是別名的錯誤組合,但我一直在嘗試一切! – rsmith

回答

0

爲什麼不只是做:

SELECT cmp.id as company_id, 
     (SELECT name FROM contacts WHERE cmp.Id = company_id LIMIT 1) 
FROM companies cmp 
+0

對不起。我應該提到我也想從聯繫人記錄中獲取電子郵件地址。問題已更新^ – rsmith

0

您可以添加電子郵件到您的代碼,如果它出現在聯繫人表

SELECT comp.id as company_id, 
    (SELECT name,email FROM contacts WHERE comp.Id = company_id LIMIT 1) FROM companies comp 

這裏的電子郵件是,如果你的字段名稱有不同的字段名稱的電子郵件值,你可以改變它

做到這一點

SELECT comp.id as company_id, SELECT name,email FROM contacts WHERE comp.Id = company_id LIMIT 1 FROM companies comp 
+0

我試過,但在該位置的子查詢只能包含一個值:#1241 - 操作數應包含1列 – rsmith

+0

確定做一件事刪除()SELECT查詢然後重做 – Rakhi