我有兩個子查詢,我想選擇兩個不同的列,但我不知道如何。現在嘗試了很長時間。SQL - 從一個選擇到另一個選擇的結果
換句話說,我需要這樣做:
select distinct A, B
from (select * from selectstatement 1, selectstatement 2);
我這是什麼。
我得到了兩個表table1和table2,每個類型爲三個列。
我:
selectstatement 1:
select *
from table1, table2;
selectstatement 2:
select distinct table1.A, table1.B, table2.A, table2.B
from table1, table2
where (table1.A > table1.B and table2.A > table2.B)
or (table1.B > table1.A and table2.B > table2.A);
我現在的問題是,從兩本select語句的挑選出列A和B,如select distinct A, B from (select * from selectstatement 1, selectstatement 2);
但這一切我都試過沒有奏效。
這並不工作:
select distinct P.A, P.B, T.A, T.B
from ( select distinct table1.A, table1.B, table2.A, table2.B
from table1, table2
where (table1.A > table1.B and table2.A > table2.B)
or (table1.B > table1.A and table2.B > table2.A)) as P,
(select * from table1, table2) as T;
但是,這也是錯的,如果我不喜歡它「select distinct A, B from (select * from selectstatement 1, selectstatement 2);
」,是不是?
查看錶別名 – kiks73 2014-10-28 06:38:45
查詢2看起來沒問題。您選擇有問題的四列。但是,您想在查詢1中選擇哪些列?還有P.A,P.B,T.A,T.B?你正在做一個交叉連接,所以你得到所有可用的組合。查詢2中不存在任何不在查詢1中的組合。顯然,您希望有不同的東西。但是什麼?你正在談論*兩個*不同的列,但你選擇*四*。建議:嘗試解釋結果集應該是什麼樣子,就好像你對SQL一無所知。不要談論聯合和聯合查詢。只需描述結果表。 – 2014-10-28 08:51:56
@ThorstenKettner:很好的建議。我會走得更遠,不要描述結果表,而只是描述你正在尋找的結果。 – jmoreno 2014-10-29 02:25:15