Sql 这个查询可能吗?从两个表中选择,如

Sql 这个查询可能吗?从两个表中选择,如,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,我知道这将导致一个不明确的错误,因为两个表中都存在名称。但是 我想从这两个表中选择名称。Name是t_1和t_2中的一列。可以从两个表中进行选择吗?有没有办法在两个表之间选择名称,并返回一列数据 SELECT Name FROM t_1, t_2 WHERE Name LIKE '%' + @USER + '%' 您可以尝试使用联合 SELECT Name FROM t_1 WHERE Name LIKE '%' + @USER + '%' UNION SELECT Name FROM t_2

我知道这将导致一个不明确的错误,因为两个表中都存在名称。但是 我想从这两个表中选择名称。Name是t_1和t_2中的一列。可以从两个表中进行选择吗?有没有办法在两个表之间选择名称,并返回一列数据

SELECT Name
FROM t_1, t_2
WHERE Name LIKE '%' + @USER + '%'

您可以尝试使用
联合

SELECT Name
FROM t_1
WHERE Name LIKE '%' + @USER + '%'
UNION
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'

注意,
UNION-ALL
也可以使用,如果存在相同名称的多个实例,也会返回它们。使用符合您要求的任何一个。

您可以尝试使用
联合体

SELECT Name
FROM t_1
WHERE Name LIKE '%' + @USER + '%'
UNION
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'
SELECT Name
   FROM t_1
   WHERE Name LIKE '%' + @USER + '%'
UNION ALL
SELECT Name
   FROM t_2
   WHERE Name LIKE '%' + @USER + '%'

注意,
UNION-ALL
也可以使用,如果存在相同名称的多个实例,也会返回它们。使用符合您要求的工具。

您需要使用UNION进行组合

SELECT Name
   FROM t_1
   WHERE Name LIKE '%' + @USER + '%'
UNION ALL
SELECT Name
   FROM t_2
   WHERE Name LIKE '%' + @USER + '%'
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'
union 
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'

您需要使用UNION进行合并

SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'
union 
SELECT Name
FROM t_2
WHERE Name LIKE '%' + @USER + '%'

您可以使用别名

SELECT t1.Name AS 'NAME-T1', t2.Name AS 'NAME-T2'
FROM t_1 AS t1, t_2 AS t2
WHERE t1.Name LIKE '%' + @USER + '%' OR t2.Name LIKE '%' + @USER + '%'

您可以使用别名

SELECT t1.Name AS 'NAME-T1', t2.Name AS 'NAME-T2'
FROM t_1 AS t1, t_2 AS t2
WHERE t1.Name LIKE '%' + @USER + '%' OR t2.Name LIKE '%' + @USER + '%'

使用
UNION ALL
/
UNION
,谢谢felix,答案都是正确的,但我会接受William的第一个答案,再投票给其他人,因为差距是47秒。有很多答案建议要么使用UNION,要么使用UNION ALL。请注意,UNION只返回一个不同的列表,为了生成该列表,SQL Server必须执行不同的排序。这通常比所有工会都要昂贵得多。如果你不需要不同的分类,你不应该选择联合而不是联合。是的,我已经读过它们的区别了。。谢谢@DatumPointUse先生,谢谢felix,答案都是正确的,但是我会接受William的第一个答案,就投票给其他人,因为差距是47秒。有很多答案建议要么是UNION要么是UNION ALL。请注意,UNION只返回一个不同的列表,为了生成该列表,SQL Server必须执行不同的排序。这通常比所有工会都要昂贵得多。如果你不需要不同的分类,你不应该选择联合而不是联合。是的,我已经读过它们的区别了。。谢谢DatumPoint先生