SQL: Выборка нескольких полей вложенным select-запросом

Есть select запрос, который должен получить несколько полей с помощью ВЛОЖЕННЫХ ( не join ) запросов.
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .sql.geshi_code {font-family:monospace;} .sql.geshi_code .imp {font-weight: bold; color: red;} .sql.geshi_code .kw1 {color: #993333; font-weight: bold;} .sql.geshi_code .co1 {color: #808080; font-style: italic;} .sql.geshi_code .co2 {color: #808080; font-style: italic;} .sql.geshi_code .coMULTI {color: #808080; font-style: italic;} .sql.geshi_code .es0 {color: #000099; font-weight: bold;} .sql.geshi_code .br0 {color: #66cc66;} .sql.geshi_code .sy0 {color: #66cc66;} .sql.geshi_code .st0 {color: #ff0000;} .sql.geshi_code .nu0 {color: #cc66cc;} .sql.geshi_code span.xtra { display:block; }

SELECT t.*
   (SELECT name FROM user WHERE something = t.something) AS name,
   (SELECT FIELD FROM user WHERE something = t.something) AS FIELD
FROM TABLE t
 


Как видно, нужно достать два поля. Тут я использовал 2 запроса, а как использовать 1 запрос, можно ли так?

P.S. БД Oracle.

Нужно для реализации вложенного limit-order запроса, который в Оракле выглядит так:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .sql.geshi_code {font-family:monospace;} .sql.geshi_code .imp {font-weight: bold; color: red;} .sql.geshi_code .kw1 {color: #993333; font-weight: bold;} .sql.geshi_code .co1 {color: #808080; font-style: italic;} .sql.geshi_code .co2 {color: #808080; font-style: italic;} .sql.geshi_code .coMULTI {color: #808080; font-style: italic;} .sql.geshi_code .es0 {color: #000099; font-weight: bold;} .sql.geshi_code .br0 {color: #66cc66;} .sql.geshi_code .sy0 {color: #66cc66;} .sql.geshi_code .st0 {color: #ff0000;} .sql.geshi_code .nu0 {color: #cc66cc;} .sql.geshi_code span.xtra { display:block; }

SELECT a,b,c FROM (SELECT a,b,c FROM something ORDER BY date DESC) WHERE rownum = 1
 

1 ответов


А почему просто LEFT JOIN нельзя ?


  SELECT t.*,
   u.name,u.FIELD
   FROM TABLE1 t
    LEFT JOIN user u ON (u.something = t.something)
 

UPDATE. Надеюсь, сейчас правильно понял...

  SELECT *
   FROM
  (
  SELECT t.*, ROW_NUMBER() OVER (PARTITION BY t.something ORDER BY u.date DESC) AS nm,
   u.name,u.FIELD
   FROM TABLE1 t
    LEFT JOIN user u ON (u.something = t.something)
   ) xxx
  WHERE xxx.nm=1