0

私は2つのテーブルを持っています

表1

c1t1    c2t1
1       saanu
3       abc

テーブル2

c1t2    c2t2
2       val2
4       val4

1 行のコマンドで c1t1 と c1t2 の最小値と最大値の c2t1 と c2t2 の値を見つける必要があります。

上記の例では、saanu と val4 を見つける必要があります

4

3 に答える 3

1

1 つのアプローチ:

select max(case c1 when min1 then c2 end) c2_first, 
       max(case c1 when max1 then c2 end) c2_last 
from (select c1t1 c1, c2t1 c2 from table1
       union all
       select c1t2 c1, c2t2 c2 from table2) u
cross join
(select min(min11, min12) min1, max(max11, max12) max1 from
 (select min(c1t1) min11, max(c1t1) max11 from table1) t1
 cross join
 (select min(c1t2) min12, max(c1t2) max12 from table2) t2) m

ここでSQLFiddle 。

于 2013-11-09T21:20:28.417 に答える
0

私は非常によく似た問題を抱えていて、UNION ALLで解決しました。テーブル aTable1、...、aTableN の aColumn 列の最小値は、次のように計算できます。

SELECT Min(aColumn) 
FROM (
SELECT aColumn FROM aTable1 UNION ALL
SELECT aColumn FROM aTable2 UNION ALL
...
SELECT aColumn FROM aTableN) t;

内部選択のそれぞれで Min を実行できるはずですが、その方法がわかりません!

于 2014-07-14T18:58:39.803 に答える
0

1)

SELECT c2t1
FROM table1
ORDER BY c1t1 ASC LIMIT 1

2)

SELECT c2t2
FROM talbe2
ORDER BY c1t2 DESC LIMIT 1
于 2013-11-09T20:59:14.537 に答える