mysql - 从联接表中选择具有多次出现的列值的行

标签 mysql sql database

我有一个返回连接表的查询,如下所示:

| id_cart | id_customer | date_add              |
| ------- | ----------- | --------------------- |
| 1       | 100         | 2017-07-24 | 10:48:00 |
| ------- | ----------- | --------------------- |
| 2       | 101         | 2016-02-14 | 15:43:05 |
| ------- | ----------- | --------------------- |
| 3       | 100         | 2015-04-12 | 01:59:34 |

我想根据这些结果,只选择在 id_customer 列中出现不止一次的行 - 我假设它看起来像这样:

| id_cart | id_customer | date_add              | customer_count |
| ------- | ----------- | --------------------- | -------------- |
| 1       | 100         | 2017-07-24 | 10:48:00 | 2              |
| ------- | ----------- | --------------------- | -------------- |
| 3       | 100         | 2015-04-12 | 01:59:34 | 2              |

我面临的问题是,我从其他人那里看到的大多数问题都是寻找多个值出现的次数,而我只对结果感兴趣,而不是次数。此外,通过使用连接表,我不确定如何将它作为变量/别名引用回来,而不是一遍又一遍地复制和粘贴一个非常长的查询。

最佳答案

对于 MySQL,我会这样做:

select *
from (select stuff from bigjoin) a1
inner join
(
select id_customer
from (select stuff from bigjoin)
group by id_customer
having count(*) > 1
) x1
on x1.id_Customer = a1.id_customer

关于mysql - 从联接表中选择具有多次出现的列值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45277526/

相关文章:

php - 多个一对一关系 Laravel

mysql - 如何仅使用日期从 DATETIME 列中进行选择?

c# - Visual Studio - SQL Server 数据库项目的连接字符串

mysql - 什么时候应该将列标记为主键?

MySQL - 从列中的两行返回多个条目的最新日期和总和

java - 如何通过Java AWS SDK评估这个表达式?

java - 如果不在数据库中,Android Studio SQLite 会保存标题吗?

php - MySQLi multi_query 不工作

mysql - 查询总数减少百分比

MySQL 语句 ON DUPLICATE KEY 对于非键