我试图在他们之间连接多个SELECT
语句。即SELECT
语句A具有将传递给SELECT
语句B的数据。然后,SELECT
语句B将具有将传递给SELECT
语句C的数据。
请帮帮我。我是SQL的新手。
答案 0 :(得分:1)
如果规范是“连接多个SELECT语句”,并且将从一个SELECT“返回”的数据“传递”到另一个SELECT,那么我认为使用内联视图(派生表)将符合规范。 (SELECT语句的结果通常可以代替表引用;这种结构在MySQL用语中称为“内联视图”或“派生表”。
SELECT b.id
FROM ( SELECT a.id
FROM ( SELECT t.id
FROM mytable t
) a
) b
我们也可以使用子查询来返回集合
SELECT t.id AS mn
, (SELECT t.id
FROM mytable t
ORDER BY t.id DESC
LIMIT 1
) AS mx
FROM mytable t
ORDER BY t.id ASC
LIMIT 1
我们也可以在谓词中使用子查询
SELECT t.id
FROM mytable t
WHERE t.id IN ( SELECT s.id
FROM mytable s
WHERE s.id MOD 2 > 0
)
也可以在内联视图之间使用JOIN操作,就像表之间的JOIN操作一样。我们通常在不需要时避免子查询和内联视图,因为它们可能会对性能产生重大影响,并且会增加不必要的复杂性。
请注意,我们可以使用以下查询获得与上述查询相同的结果,通常更有效:
SELECT t.id FROM mytable t
和
SELECT MIN(t.id) AS mn, MAX(t.id) AS mx FROM mytable t
和
SELECT t.id FROM mytable t WHERE t.id MOD 2
如果没有更详细的源数据规范,以及您想要返回的实际结果集,我们可能会提出各种可能的查询形式,并且很可能大多数这些形式都不适合您的实际用例。 / p>