Sql 返回数据,但不在比较中包含该数据
我正在使用以下代码:Sql 返回数据,但不在比较中包含该数据,sql,Sql,我正在使用以下代码: SELECT l_name, f_name, user_id FROM (SELECT a.l_name, a.f_name, count(*) FROM shema.emp_table1 a, schema2.emp_table2 b WHERE a.emp_id = b.emp_id2 AND b.office_num = '4017' AND a.email IS NULL HAVING
SELECT l_name, f_name, user_id
FROM (SELECT a.l_name, a.f_name, count(*)
FROM shema.emp_table1 a, schema2.emp_table2 b
WHERE a.emp_id = b.emp_id2
AND b.office_num = '4017'
AND a.email IS NULL
HAVING COUNT (a.l_name) > 1
group by a.l_name, a.f_name
ORDER BY a.l_name, a.f_name)
GROUP BY l_name, f_name;
…如果数据库中的用户与姓氏“匹配”(可能重复),我要做的是返回用户的姓氏、名字和用户ID。我遇到的问题是,USER_ID字段对于每个用户都是唯一的……因此,即使他们可能共享姓氏和名字,用户ID也是唯一的……这导致我的查询返回零行。如果我从搜索条件中删除用户ID字段,我将得到我要查找的列表:共享姓和名的用户…(例如Doe、John,计数为4)。但是,即使我不希望查询用户ID,我也希望它作为“返回字段”之一……但我似乎无法让它这样做
任何帮助都将不胜感激。我已经尝试了上述查询的许多不同变体,有/没有内外计数,有/没有内外用户id等等,但到目前为止,我没有运气得到我想要的
我想要的输出是:
L_NAME F_NAME USER_ID COUNT(*)
SMITH JOHN ABC123 2
SMITH JOHN BCD234 2
…虽然,现在我正在寻找它,但查询可能不起作用,因为用户ID为ABC123的Smith,John的“count(*)不是2…用户ID导致它比我希望的更难。我是否需要写一个异常块来填充这种请求
谢谢 如果您从子查询返回数据,并使用子查询和外部查询中相同的限定符将其连接到外部查询,那么它应该可以工作。我没有你的表,所以我不能测试这个,所以你可能需要调整一下
SELECT x.l_name, x.f_name, a1.emp_id, x.cnt
FROM (
SELECT a.l_name, a.f_name, count(*) as CNT
FROM schema.emp_table1 a, schema2.emp_table2 b
WHERE a.emp_id = b.emp_id2
AND b.office_num = '4017'
AND a.email IS NULL
HAVING COUNT (a.l_name) > 1
GROUP BY a.l_name, a.f_name
ORDER BY a.l_name, a.f_name
) as x
INNER JOIN schema.emp_table1 a1 on x.l_name = a1.l_name
INNER JOIN schema2.emp_table2 b1 on x.l_name = b1.l_name and a1.emp_id = b1.emp_id2
WHERE b1.office_num = '4017'
AND a1.email IS NULL
如果
user\u id
值不同,您希望看到哪一个?另外,shema.emp\u table1
和'schema2.emp\u table2'之间的user\u id
值是否不同,或者每个表中是否有几行共享名字和姓氏?