2012-07-25 46 views
1

在我的數據庫中,我有以下三個表格與字段列出的表:加入基於參數

TablePS 

aID 

TableAM 

aID(pk) 
bID 

TableM 

bID(pk) 
bName 

如果我知道TablePS的幫助下,我怎麼能找到BNAME的TableM價值? 我曾嘗試以下查詢:

SELECT bName FROM TableM WHERE bID= 
(SELECT TablePS.aID,TableAM.aID 
FROM TablePS 
INNER JOIN TableAM 
ON TablePS.aID= TableAM.aID) 

回答

4
select bName 
from tableM 
    inner join tableAM on tableM.bID = tableAM.bID 
where 
    aID = [value] 

應該足夠了。 如果您需要連接到表PS,然後

select bName 
from tableM 
    inner join tableAM on tableM.bID = tableAM.bID 
    inner join tablePS on tableAM.aID = tablePS.aID 
1
Select BName from TableM as M inner join TableAM as Am on M.bId=Am.bID 
inner join TablePS as P on Am.Aid=P.Aid 
+0

不工作查詢 – John 2012-07-25 11:34:44

+0

@John「不工作的查詢」是什麼意思? – 2012-07-25 12:05:44

+0

@AaronBertrand - 我猜測John的意思是「查詢無法正常工作」。看起來不錯,雖然 – whytheq 2012-07-25 12:26:17

1
SELECT k.bName 
FROM TablePS p 
    INNER JOIN TableAM m ON m.aID = p.aID 
    INNER JOIN TableM k on k.bID = m.bID 
+0

不工作查詢 – John 2012-07-25 11:35:38

+0

對,我的壞,改變引用正確的別名 – Steve 2012-07-25 11:42:25

+0

任何其他方式沒有內部聯接 – John 2012-07-25 12:15:42

0

如果你不想使用可能JOIN當時的這一點。

我假設aId是INT類型,您可以更改。

declare @x as int = 10 --<<change to an id that you are searching for 

select bname from TableM where bid in 
      (
      select bID from TableAM 
      where aID in 
          (
          select aID from TablePS where aId = @x 
          ) 
      )