我有以下两个表:
表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不在两个表中?
由于
答案 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