2013-09-21 33 views
6

table1の各値のmin maxとmax minの値を別のテーブルから選択したい2。 サンプル入力MySQLのテーブルの一部からmin maxとmax minの値を選択

table2 
name, value,y 
f1, .01,.04 
f1,.02,.05 
f1,.05,.06 
f1,.45,.07 
f2,.03,.09 
f2,.05,.02 

table1 
name, value 
f1, .04 
f2,.04 

expected output 
table3 
name, value,min_max-value,max_min-value,y(min_max-value),y(max_min-value) 
f1, .04,.02,.05,.05,.06 
f2,.04,.03,.05,.09,.02 

答えて

2
あなたは次のクエリでT2からMAXとMINの値を取得することができます

:近いあなたができるt1.valueと対応するyの値に値を取得するには:

SELECT 
    t1.name, 
    t1.value, 
    (SELECT min(value) FROM table2 t2 WHERE t2.name = t1.name), 
    (SELECT MAX(value) FROM table2 t2 WHERE t2.name = t1.name) 
FROM table1 t1 

EDIT :

SELECT 
    t1.NAME, 
    t1.value, 
    (SELECT MAX(t2.value) 
     FROM table2 t2 
     WHERE t2.NAME = t1.NAME AND t2.value < t1.value) AS maxmin, 
    (SELECT MIN(t2.value) 
     FROM table2 t2 
     WHERE t2.NAME = t1.NAME AND t2.value > t1.value) AS minmax, 
    (SELECT t2.y 
     FROM table2 t2 
     WHERE t2.NAME = t1.NAME AND t2.value = (
      SELECT MAX(t3.value) 
      FROM table2 t3 
      WHERE t3.NAME = t1.NAME AND t3.value < t1.value 
      )) AS ymaxmin, 
    (SELECT t2.y 
     FROM table2 t2 
     WHERE t2.NAME = t1.NAME AND t2.value = (
      SELECT MIN(t3.value) 
      FROM table2 t3 
      WHERE t3.NAME = t1.NAME AND t3.value > t1.value 
      )) AS yminmax 
FROM table1 t1 

this fiddle

+0

のSRY ..itでそれを見るの元を与えていませんpected result – Karunakar

+0

@ user2795017なぜ期待される結果が得られないのですか?動作を確認するには[this fiddle](http://sqlfiddle.com/#!2/14597/1)を参照してください。ああvalueのデータ型は何ですか? –

+0

こんにちは..私の期待された出力を見て、urの出力との相互検証...私はurの出力を行った。それは一致していない – Karunakar

関連する問題