如何根据第一个表的列值从两个表中获取行信息

时间:2011-12-24 17:52:29

标签: mysql

我有以下两个表:

表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不在两个表中?

由于

4 个答案:

答案 0 :(得分: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条件允许我们仅在第一个表格中选择article_id = 1行。

答案 1 :(得分:2)

使用NATURAL JOIN - Wikipedia Entry

SELECT *
FROM TableA NATURAL JOIN TableB
WHERE article_id = 1

答案 2 :(得分:0)

使用attribute_id加入

SELECT * FROM TableA A, TableB B where
A.attribute_id = B.attribute_id

答案 3 :(得分:0)

  select article_id, tablea.attribute_id,attribute_name 
  from tablea,tableb where    
  tablea.attribute_id=tableb.attribute_id
  and article_id= :passedId