2013-12-16 78 views
-1

我一直被困在這一個問題,我需要根據另一個表列來查詢數據。SQL - 如何從表中與主鍵相關的不同表中提取記錄

我有兩個類似於下面的表。我需要拉tableA partno與tableB partno的查詢。

表A:

partno class sale 
2342 R N 
2321 R N 
5252 C Y 
89232 C Y 
24123 C Y 
7232 R Y 

表B:

partno orderno currency purchprice mutation 
2342 P213 USD 100  12/16/2013 
2342 P223 USD 100  12/17/2013 
2321 P225 USD 200  12/17/2013 
5252 P231 NOK 1000  12/18/2013 
89232 P229 NOK 300  12/19/2013 
24123 P102 CAD 400  12/20/2013 
7232 P233 CAD 5000  12/21/2013 
7232 P235 CAD 5000  12/22/2013 



SELECT 
     [partno] 
     ,[orderno] 
     ,[currency] 
     ,[purch_price] 
     ,[mutation] 
    FROM tableB 
    WHERE tableA.partno = tableB.partno; 

但是我得到這個錯誤:

多部分標識符......無法綁定。

+5

您需要在'from'子句中包含'TableA',最好使用正確的'join'語法。當你這樣做時,你會發現'partno'是不明確的。那麼你應該學習表別名的樂趣。 –

+0

請參考Gordon在上面的評論中提到的Table Aliases http://www.w3schools.com/sql/sql_alias.asp,以及對於SQL Join http://www.w3schools.com/sql/sql_join_inner.asp希望它有助於。 – rach

回答

1

戈登評論是正確的,你應該包括這兩個表名FROM子句和限定列名

SELECT 
     tableB.partno 
     ,tableB.orderno 
     ,tableB.currency 
     ,tableB.purch_price 
     ,tableB.mutation 
    FROM tableA, tableB 
    WHERE tableA.partno = tableB.partno; 

您還需要考慮在查詢語義獨特的鍵和空值。部分沒有獨特之處? Partno不是null?

相關問題