我的数据就像
| order_id | user_id | ip |
---------------------------------------
| 1001 | 2 | 192.168.1.1 |
| 1002 | 5 | 192.168.1.1 |
| 1003 | 2 | 192.168.1.1 |
| 1004 | 12 | 18.15.0.1 |
| 1005 | 9 | 10.0.0.1 |
SELECT "ip", user_id
FROM userlog
WHERE "ip" IN (
SELECT "ip"
FROM userlog
GROUP BY "ip"
HAVING COUNT(*) > 1
)
GROUP BY "ip"
ORDER BY "id" DESC
当我在我的桌面上运行这个查询时,我在1秒内就得到了结果,但是当我在生产服务器上运行同样的查询时,查询挂起了几个小时,消息发送数据,填充临时表……为什么这个查询给我带来了这么多麻烦,以及如何扩展它,以便我可以运行它,从而避免这个发送数据的问题?
发布于 2017-03-14 16:37:15
尝试使用自连接,如下所示:
SELECT u1."ip", u1.user_id
FROM userlog u1
JOIN userlog u2
ON u1.ip = u2.ip and u1.order_id <> u2.order_id
ORDER BY u1."id" DESC
https://stackoverflow.com/questions/42780549
复制相似问题