Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 返回数据,但不在比较中包含该数据_Sql - Fatal编程技术网

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
值是否不同,或者每个表中是否有几行共享名字和姓氏?