MYSQL计算第一个表id,其中值在第二个表中找到

时间:2014-04-17 15:07:24

标签: mysql sql

我有两张桌子,

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

2 个答案:

答案 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