Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с SQL запросом если не лень


Страницы:   1 2

DillerXX ©   (2008-07-11 19:43:00) 

СУБД mySQL. Пусть есть таблицы t1 и t2. Каждая имеет вид
DATETIME `date`,
TEXT `name`
Мне нужно выбрать все записи обоих таблиц, добавив 3ий столбец, где стояло бы имя таблицы, а затем отсортировать полученную таблицу по возрастанию date. Тоесть нужно объединить результат запросов SELECT `name`, `date`, 'tbl1' FROM `tbl1`  (и для второй аналогично) и отсортировать по date. Ни одной идеи как это сделать (ведь SELECT (SELECT ...), по крайней мере в mySQL, не может принимать результат с более чем 1ой строкой). Может у UNION есть какие-то параметры, с помощью которых можно управлять резуьтатом обоих запросов, но ничего не нашёл.

ЗЫ. Пожалуйста, не оставляйте своё мнение по поводу mySQL, я всегда догадывался о нём.


Игорь Шевченко   (2008-07-11 22:45:00) [21]

отсортированный набор гарантировано возвращает только SELECT .... c ORDER BY. Все остальные утверждения есть ересь, туфта и лажа.


Игорь Шевченко   (2008-07-11 22:32:00) [22]

Johnmen ©   (11.07.08 21:26) [9]
sniknik ©   (11.07.08 21:14) [8]

Аналогично, DISTINCT тоже возвратит отсортированный набор ?
Ну как программист программисту ?


Johnmen   (2008-07-11 21:26:00) [23]


> Игорь Шевченко ©   (11.07.08 21:11) [6]

Типа в SQL-9x не прописано. В более поздних - не знаю.
Но упоминается в документации к конкретным sql серверам.
Всё. Больше ничего говорить не буду. Ибо что такое занудство, хорошо знаю...:)


sniknik   (2008-07-11 21:14:00) [24]

> это только к MySQL относится или вааще
это вааще везде где есть UNION. имхо (на случай какогонибудь crazy sql сервера).


sniknik   (2008-07-11 21:12:00) [25]

> оно где-то, умолчание, прописано ?
в явном виде не видел... "дошел" подобного вывода по логике, UNION же без ALL убирает дубликаты записей (и вот это уже пишут явно), а как убирать дубли в несортированном списке? как программист программисту... %) это же сколько времени оно занимать будет, на переборах? а после, раз отсортированное, как восстановит оригинальный порядок? (без введений дополнительных столбцов в выборку)
т.что то, что оно так работает с сортировкой, это точно, но вот гарантий закрепленных в доках вроде нет, не видел (mssql/access).


Игорь Шевченко   (2008-07-11 21:11:00) [26]

Johnmen ©   (11.07.08 21:07) [5]


> Конечно. В документации.


Ты меня несколько не так понял - я спрашивал, это только к MySQL относится или вааще ? (ну типа в SQL-9x прописано...)


Johnmen   (2008-07-11 21:07:00) [27]


> Игорь Шевченко ©   (11.07.08 20:15) [4]

Конечно. В документации.
И не надо мне говорить, что ты не умеешь пользоваться поисковыми серверами...:)
Т.е. не надо думать, что я буду что-то искать. Мне это не интересно...

ЗЫ
И по поводу (в случае с юнион)

> order by datetime

стОит, наверное, ознакомиться с документацией.


Игорь Шевченко   (2008-07-11 20:15:00) [28]

Johnmen ©   (11.07.08 19:51) [3]


> По умолчанию при юнион без ALL - order by 1, 2, 3, ...


я-то по серости order by после union пишу. оно где-то, умолчание, прописано ?


Johnmen   (2008-07-11 19:51:00) [29]


> Игорь Шевченко ©   (11.07.08 19:50) [2]

По умолчанию при юнион без ALL - order by 1, 2, 3, ...


Игорь Шевченко   (2008-07-11 19:50:00) [30]

Johnmen ©   (11.07.08 19:48) [1]

+ order by datetime


Johnmen   (2008-07-11 19:48:00) [31]

SELECT DATETIME, 't1' AS TableName, TEXT FROM t1
UNION
SELECT DATETIME, 't2', TEXT FROM t2


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо