选择公共值的SQL查询

选择公共值的SQL查询,sql,plsql,db2,Sql,Plsql,Db2,我有一个表,其中有IP地址和用户名。已经开发了一个GUI来选择这些值。IP地址是一个选择字段,我们可以从中选择多个IP地址,用户名字段是一个下拉列表,我们只能从中选择一个用户名 该表包含IP地址和用户名的组合,但当用户选择多个IP地址时,用户名下拉列表应仅填充所选多个IP地址中常见的用户名。有没有办法为它编写SQL,或者我必须使用PL/SQL方法或编程方法 PS:我正在使用db2数据库这是您可以使用的另一个查询 SELECT t1.username FROM ip_table AS t1

我有一个表,其中有IP地址和用户名。已经开发了一个GUI来选择这些值。IP地址是一个选择字段,我们可以从中选择多个IP地址,用户名字段是一个下拉列表,我们只能从中选择一个用户名

该表包含IP地址和用户名的组合,但当用户选择多个IP地址时,用户名下拉列表应仅填充所选多个IP地址中常见的用户名。有没有办法为它编写SQL,或者我必须使用PL/SQL方法或编程方法


PS:我正在使用db2数据库

这是您可以使用的另一个查询

SELECT t1.username 
FROM ip_table AS t1 
    JOIN ip_table AS t2 
    ON  t1.`username` = t2.`username`
AND t1.ip = <ip1> AND t2.ip = <ip2> ... etc
选择t1.username
从ip_表中选择t1
将ip_表连接为t2
在t1上。`username`=t2。`username`
t1.ip=和t2.ip=。。。等
注意:此查询必须动态生成。。。count(*)值应与in子句中的IP地址数匹配

select name, count(*) from users
where ip in (?,?,?)
group by name
having count(*)=?