2011-12-24 420 views
0

的列值獲得行的信息,我有以下兩個表:如何從兩個表基於第一個表

表A

article_id | attribute_id 
1   | 5 
2   | 6 

表B

attribute_id | attribute_name 
5   | foo 
6   | bar 

我將如何獲得相應的行如果我只知道文章ID?所以,如果我通過的article_id 1,我得到:

article_id | attribute_id | attribute_name 
1   | 5   | foo 

我知道我可以用兩個單獨的查詢做,但不知道是否可以在一個做?我想過使用INNER JOIN ON,但article_id不在這兩個表中?

感謝

回答

3

可以肯定的,你可以(而且必須)使用INNER JOIN

SELECT TableA.article_id, TableB.* 
FROM TableA 
INNER JOIN TableB ON TableA.attribute_id = TableB.attribute_id 
WHERE TableA.article_id = 1 

SELECT部分讓我們從第一個表中檢索article_id,並從第二個各個領域。
INNSER JOIN子句從兩個表中連接具有相同attribute_id的行。
WHERE條件讓我們只在第一個表中選擇​​的行。

+0

啊得到它的感謝! – Bob 2011-12-24 18:34:45

0

加入使用attribute_id

SELECT * FROM TableA A, TableB B where 
A.attribute_id = B.attribute_id 
0
select article_id, tablea.attribute_id,attribute_name 
    from tablea,tableb where  
    tablea.attribute_id=tableb.attribute_id 
    and article_id= :passedId 
2

使用天然JOIN - Wikipedia Entry

SELECT * 
FROM TableA NATURAL JOIN TableB 
WHERE article_id = 1 
相關問題