您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

仅从多个表中选择同一列

仅从多个表中选择同一列

解决问题之前要指出的一个问题是,每个查询中的查询UNION都是不同的,并且需要自己的WHERE子句。整体上唯一适用于的子句UNIONORDERBY。因此,您的查询需要进行一些调整:

SELECT nombre
FROM dbo.internados
WHERE nombre = ? -- the added line
UNION
SELECT nombre
FROM dbo.universidades
WHERE nombre = ?
;

其次,如果您希望两个表都具有相同的功能nombre(虽然尚不完全清楚,但我想这是对的),那么这将不起作用,因为nombre如果在 _两个_表中都找到了该值,它只会返回一个解决此问题的最佳方法可能就是进行联接:

SELECT I.nombre
FROM
   dbo.internados I
   INNER JOIN dbo.universidades U
      ON I.nombre = U.nombre
WHERE
   I.nombre = ?
   AND U.nombre = ? -- perhaps not needed, but perhaps helpful
;

我不确定100%确切地了解您要查找的内容,因此,如果我错过了成绩,请大声说出来。

你可以想想JOIN,并UNION这种方式:

请注意UNION,虽然不理想,但可以将其修改以完成工作:

SELECT nombre
FROM (
   SELECT nombre
   FROM dbo.internados
   WHERE nombre = ?
   UNION ALL
   SELECT nombre
   FROM dbo.universidades
   WHERE nombre = ?
) N
GROUP BY nombre
HAVING Count(*) = 2
;

这样,我们确保有两个值。请注意,这假设每个表中不能有两个相同的名称。如果是这样,则需要更多工作才能使该UNION方法完成工作。

其他 2022/1/1 18:26:33 有541人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶