mysql - 从表 2 中的表 1 列计数中获取数据

标签 mysql sql inner-join

Table 1 :

ID  City             State
1   NewYork          NY
2   Oklahama         OK
3   california       CA
4   new jersey       NJ
5   Las Vegas        LA

Table 2 :

ID  City 
1    NewYork          
2    NewYork          
3    NewYork          
4    Oklahama
5    Oklahama

表 2 中纽约是 3 倍,俄克拉荷马州是 2 倍。 所以我想从表 1 中获取城市列表,其中城市在表 2 中使用次数少于 5 次

那么Mysql中的精确查询是什么呢?

我正在使用以下代码:

select *
from  Table1
where Table1.city in
    (select Table2 .city,count(*)
     from Table2
     having count(*) < 5
     group by Table2.city )

最佳答案

您可以将 in 子句与子选择结合使用

    select  * from  table1
    where city in (select  city from table2 having count(*) < 5 group by city)

在您的代码中,Table2 和 .city 之间有一个空格

select  * 
from  Table1  where Table1.city in   (select  
              Table2 .city,count(*) from Table2 having count(*) < 5 group by Table2.city )

必须

select  * 
from  Table1  
where Table1.city in   (select  Table2.city
                        from Table2 
                         group by Table2.city
                         having count(*) < 5   )

表名和列之间没有空格..

你可以看到http://sqlfiddle.com/#!9/556cb6/10

关于mysql - 从表 2 中的表 1 列计数中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38041777/

相关文章:

SQL Server - 将存储过程从一个数据库复制到另一个数据库

php - 具有不同列名的 MySQL INNER JOIN

php - 瓦普 : start mysql through PHP and Batch file

mysql - Django,如何使用 [ORDER BY CONVERT (name USING gbk) ASC] 进行查询

sql - 如何限制laravel中每个类别的结果

mysql - 将 2 个内连接查询合并为一个

MySQL 查询永远不会返回

mysql - mac mysql 终端不要求输入密码 ERROR 1064

sql - 多个 SQL 搜索与搜索一个返回的数组

sql - Toad 只在 sql 中给出日期