Forum Webscript.Ru

Общие => Базы данных => Тема начата: tarya от 06 Августа 2002, 11:19:26

Название: помогите составить запрос
Отправлено: tarya от 06 Августа 2002, 11:19:26
доброе утро.
с вашей помощью вчера сделал такую штуку классную как занесение даных в таблицу через броузер с последующей их сортировкой, но вот встал такой вопрос: у меня сортируется таблица по какому то из столбцов, к примеру - по дате, по региону, по отелю, но вот еще интерисует такая штука: когда я сортирую всю таблицу по отелям то получается что они сортируются в неправильном порядке. пример такой: если у меня в один столбец отсортировались 15 одинаковых отелей то внутри их они в песпорядке по дате. возможно ли - (возможно) сортировать по отелю или как я делаю еще по чему то но еще и по дате внутри их?
помогите сотавить запрос, просто пример а там я разберусь.
спасибо.
Название: помогите составить запрос
Отправлено: fidget от 06 Августа 2002, 11:27:02
order by hotels, date

тогда у тебя вначале будет идти сортировка по отелям, а потом по дате.
Название: помогите составить запрос
Отправлено: tarya от 06 Августа 2002, 12:40:21
спасибо большое за помощь, как я правильно понял через запятую мона это дело прописывать,....


спасибо
Название: помогите составить запрос
Отправлено: tarya от 06 Августа 2002, 17:06:40
а вот еще такой вопрос, если мне нужно к примеру удалить строку из одной таблицы и из другой несколько по одному едентификатору - возможно ли написать запрос одной строкой?

пример: $query = "DELETE from chguest where id=\'$del\' и ....... из такой то таблицы,....";
Название: помогите составить запрос
Отправлено: fidget от 06 Августа 2002, 17:28:05
можно, если у тебя версия MySQL 4.0.X
Название: помогите составить запрос
Отправлено: Tankist от 06 Августа 2002, 17:33:36
Цитировать
MySQL 4.0.X

Пока не на одном хостинге не видел, чтобы стояла 4..Или tarya, можешь занятся pgSQL, она такие вещи поддерживает...
Название: помогите составить запрос
Отправлено: fidget от 06 Августа 2002, 18:10:15
Tankist
я думаю появится, как только они ее до беты доведут.

кстати вот сдесь есть пример как это в 3.23 обойти:
http://www.mysql.com/doc/en/ANSI_diff_Sub-selects.html
Название: помогите составить запрос
Отправлено: AlieN от 07 Августа 2002, 10:34:49
Цитировать
кстати вот сдесь есть пример как это в 3.23 обойти:

только про удаление я так ничего и непонял
Название: помогите составить запрос
Отправлено: Alexandr от 07 Августа 2002, 10:38:07
Цитировать
только про удаление я так ничего и непонял

Я тож полностью не понял, но мне кажется Mysql генерит таблицу (выборку) со множеством строк DELETE, чтобы ты иж потом, напр. , скопировал их или сделал ещё запросы на основании этой выборки.
Название: помогите составить запрос
Отправлено: fidget от 07 Августа 2002, 12:20:51
Alexandr
почти угадал :)
только их копировать никуда не надо :)

SELECT CONCAT(\'DELETE FROM tab1 WHERE pkid = \', "\'", tab1.pkid, "\'", \';\')
  FROM tab1, tab2
 WHERE tab1.col1 = tab2.col2;

Если это положить в скрипт и запустить вот так

shell> mysql --skip-column-names mydb < myscript.sql

то это даст тебе множество строк DELETE, где в where для pkid будут подставлены нужные значения.

А если как написано в мануале
shell> mysql --skip-column-names mydb < myscript.sql | mysql mydb

то вывод первой части будет перенаправлен на клиентскую программу (mysql) и все эти DELETE будут выполнены :)

ну.. объяснение немного корявое, но я думаю смысл понятен :)