我有两张桌子,
table1 和 table2 两个表都有这些列
id, name, rel_id
现在我想查询 table1 的ID,其中 table2 的名称等于john, table1 rel_id等于到 table2 rel_id。 所以这样的事情(这是不正确的,这就是为什么我需要帮助才能让它发挥作用)。
Select count(ids) from table1
where table2.name="john"
and table1.rel_id=table2.rel_id
答案 0 :(得分:3)
嗯,一种方法是使用连接:
Select count(t1.id)
from table1 t1 join
table2 t2
on t1.rel_id = t2.rel_id
where t2.name = 'john';
请注意,这使用表别名来区分每个表中的所有列。由于表具有相同的列,因此您需要为每列标识表。此外,我更改了字符串常量以使用单引号而不是双引号。
答案 1 :(得分:1)
你需要查看联接:
select count(ids)
from table1 join table2 on table1.rel_id=table2.rel_i
where table2.name="john"
W3C学校的简短介绍:http://www.w3schools.com/sql/sql_join.asp
完整的MySQL网址以获取更多参考http://dev.mysql.com/doc/refman/5.0/en/join.html