从一个表中查询与另一个表中的值匹配的数据

时间:2012-02-06 04:17:42

标签: mysql sql

我有两个表创建为

create table table1(id int,);
create table table2(id int, tb2_id int,...)

但是当我尝试

Select * from table2 where tb2_id=table1.id;

我得到一个错误,即table1.id是一个未知列。

有人能指出我犯的错误在哪里吗?

4 个答案:

答案 0 :(得分:3)

你可能想要JOIN个表:

SELECT table2.* FROM table2 JOIN table1 ON (table2.tb2_id=table1.id)

答案 1 :(得分:1)

Select * from table2, table1 where tb2_id=table1.id;

答案 2 :(得分:1)

您需要加入或子查询。

Select t2.*
from table2 t2
  Inner join table1 t1
     On t2.tbl2_id = t1.id

Select t2.*
from table2 t2
where tbl2_id in ( select id from table1 )

答案 3 :(得分:1)

试试这个:

SELECT * 
FROM Table2
WHERE ID IN (SELECT ID FROM Table1)