0

我不知道我是否解释得足够好,但我认为我在这里遇到了一个奇怪的问题。

我需要将我的两个查询用作表,例如

SELECT * 
FROM (SELECT ...) query1, 
     (SELECT * ... FROM ... WHERE query1.col = mycol) query 2,
     table1 table1,
     table2 table2,
WHERE query1.something = table1.something
AND query1.otherthing = query2.otherthing
AND query2.something = table1.something
AND query.otherthing = table2.otherthing

如果不将query1作为子查询再次嵌套到query2中,这样的事情是否可行?

4

1 回答 1

0

只要子查询有一个共同的字段,您就应该使用如下所示的连接。在这个例子中,确实应该有任何这样的子查询废话,不过,只需将表连接在一起,并明智地使用 WHERE 子句和连接类型,以获得您想要的信息:

    SELECT foo2.A, foo2.B, bar2.C, bar2.D
FROM (
    SELECT A, B
    FROM foo
    ) AS foo2
INNER JOIN
    (
    SELECT A, C, D
    FROM bar
    ) AS bar2
ON foo2.A = bar2.A
于 2013-05-03T17:03:58.697 回答