2012-02-06 2 views
1

Я две таблицы, созданной взапроса данных из одной таблицы, которая соответствует со значением из другой таблицы

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

Но когда я попробовать

Select * from table2 where tb2_id=table1.id; 

Я получил сообщение об ошибке, что table1.id является неизвестный столбец.

Может ли кто-нибудь указать, где я совершил ошибку?

+0

насчет 'Select таблица2 * от table2, table1 где table2.tb2_id = table1.id;' –

ответ

3

Вы, вероятно, хотите JOIN столы:

SELECT table2.* FROM table2 JOIN table1 ON (table2.tb2_id=table1.id) 
1
Select * from table2, table1 where tb2_id=table1.id; 
+0

или вы можете использовать. 'Выберите * из таблицы2 t2, table1 t1, где t2.tb2_id = t1.id;' –

+0

, это вызовет ошибку ... Это должно быть 'Select table2. * From table2, table1 where table2.tb2_id = table1.id;' –

+0

, запрос которого выдает ошибку ? один в ответе или один в комментарии и какова ошибка? –

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) 
1

попробовать это:

SELECT * 
FROM Table2 
WHERE ID IN (SELECT ID FROM Table1) 
Смежные вопросы