使用表和SQL语句的连接

时间:2010-10-01 16:56:07

标签: sql

联接通常用于使用表中的公共因子从两个表中获取数据

是否可以使用连接语句使用表和另一个SQL语句的结果,如果它是什么语法

7 个答案:

答案 0 :(得分:3)

当然,这称为派生表

如:

select a.column, b.column
from
    table1 a
join (select statement) b 
    on b.column = a.column

请记住,它将完全运行派生表的选择,因此如果您只选择所需的内容,它会很有帮助。

编辑:我发现除非我加入一些汇总查询,否则我很少需要使用这种技术....所以我会仔细考虑你的设计。 例如,到目前为止,此线程中的大多数演示都不需要使用派生表。

答案 1 :(得分:1)

这取决于其他语句是什么,但您可以使用的技术之一是常用表表达式 - 这可能在您的特定SQL平台上不可用。

对于SQL Server,如果另一个语句是存储过程,则可能必须将结果插入临时表并加入到该表中。

在SQL Server(和其他一些平台)中也可以使用表值函数,这些函数可以像视图或表一样加入。

答案 2 :(得分:1)

select *
    from TableA a
        inner join (select x from TableB) b
            on a.x = b.x

答案 3 :(得分:1)

Select c.CustomerCode, c.CustomerName, sq.AccountBalance

From Customers c
Join (

Select CustomerCode, AccountBalance
From Balances
)sq on c.CustomerCode = sq.CustomerCode

答案 4 :(得分:1)

当然,举个例子:

SELECT *
FROM Employees E
INNER JOIN
(  
   SELECT EmployeeID, COUNT(EmployeeID) as ComplaintCount
   FROM Complaints
   GROUP BY EmployeeID
) C ON E.EmployeeID = C.EmployeeID
WHERE C.ComplaintCount > 3

答案 5 :(得分:0)

是的。但具体到底你想做什么?

可以使用子选择,视图或临时表来完成...更多信息可以帮助我们更好地回答这个问题,包括哪些SQL软件,以及您想要做的事情的示例。

答案 6 :(得分:0)

试试这个:

SELECT T1.col1, t2.col2 FROM Table1 t1 INNER JOIN
(SELECT col1, col2, col3 FROM Table 2) t2 ON t1.col1 = t2.col1