SQL选择按ip分组的用户并在一张表中选择具有相同ip的所有其他用户

发布于 2024-10-20 06:57:13 字数 462 浏览 1 评论 0原文

如果我想选择明确的用户(即 WHERE username='peter')将所有行按 ip 分组并选择具有相同 IP 的所有其他用户,那么 SQL SELECT 查询应该是什么样子?

这是一个表的内容,其中包含以下字段:id、ip、用户名

1 | 192.0.0.1 |彼得
2 | 192.0.0.1 |杰克
3 | 192.0.0.2 |彼得
4 | 192.0.0.3 |贾斯汀
5 | 192.0.0.2 | justin

执行必要的 SQL SELECT 查询应该像这样选择(使用 WHERE username='peter'):

2 | 192.0.0.1 |杰克
5 | 192.0.0.2 | justin

这是选择用户名行的 SELECT 查询,这些用户名与目标用户名“peter”具有相同的 IP。

谁能帮我解决这个问题吗?

先感谢您!

How should the SQL SELECT query look like if I want to select definite user (i.e. WHERE username='peter') GROUP all rows BY ip and SELECT all other user that have same IPs?

This is a table's content with fields: id, ip, username

1 | 192.0.0.1 | peter
2 | 192.0.0.1 | jack
3 | 192.0.0.2 | peter
4 | 192.0.0.3 | justin
5 | 192.0.0.2 | justin

Executing necessary SQL SELECT query should select like this (with WHERE username='peter'):

2 | 192.0.0.1 | jack
5 | 192.0.0.2 | justin

That is SELECT query that has selected rows of usernames, who has the same IPs with the target username 'peter'.

Can anyone help me with this?

Thank you in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

SELECT *
FROM your_table
WHERE ip_address IN (SELECT ip_address
                     FROM your_table
                     WHERE user_name = 'peter')
    AND user_name <> 'peter'
SELECT *
FROM your_table
WHERE ip_address IN (SELECT ip_address
                     FROM your_table
                     WHERE user_name = 'peter')
    AND user_name <> 'peter'
哽咽笑 2024-10-27 06:57:13
SELECT *
FROM your_table
WHERE ip_address IN (SELECT ip_address
                     FROM your_table
                     WHERE user_name = 'peter');
SELECT *
FROM your_table
WHERE ip_address IN (SELECT ip_address
                     FROM your_table
                     WHERE user_name = 'peter');
孤单情人 2024-10-27 06:57:13
SELECT t1.*
FROM iptable t1
  INNER JOIN iptable t2 ON t1.ip = t2.ip AND t1.username <> t2.username
WHERE t2.username = 'peter'
SELECT t1.*
FROM iptable t1
  INNER JOIN iptable t2 ON t1.ip = t2.ip AND t1.username <> t2.username
WHERE t2.username = 'peter'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文