Помогите, пожалуйста, составить запрос сразу к двум таблицам, чтобы потом полученные строки можно было вывести, сортируя по времени. Названия таблиц и полей такие: toponyms region name text datetime id_toponym kommentaries id_toponyms text datetime id_kommentary
Помогите, пожалуйста, составить запрос к БД на удаление данных из двух таблиц с одним id. Есть 2 таблицы: articles и comments, связанные одним id. Но в таблице comment не всегда есть соответствующие таблице articles записи. (Иными словами у некоторых статей нет комментов). Не могу найти нигде внятного объяснения решения этой задачи. Нашел один вроде анплогичный пример, но он почему-то не пашет. Подскажите, что может не так. [sql] mysql_query("DELETE FROM articles, comments USING articles LEFT JOIN comments ON articles.id = comments.id WHERE articles.id = $id;");[/sql]
))) не знал что до такого можно додуматься) Двумя отдельными запросами удаляете и будет вам счастье. Если строки с ид не будет он ничего не удалит
Два запроса - это, конечно, выход. Прочитал, что лучше все же делать в одном запросе. Дескать, чем больше запросов, тем больше нагрузка на базу.
ну да, на пару часов медленнее. Особенное если учесть что дико интенсивно приходится напрямую удалять записи из таблиц а вообще http://www.phpclub.ru/mysql/doc/delete.html заинтересовало. Даже не думал что можно сразу из нескольких таблиц бахать
Nikolai_, неправильно прочитал. Совсем. Надо исходит из случаев. Каждый случай - свой подход. Например. Удаление. добавление, редактирование. Это относительно select'а редкие действия. Количество таких запросов не играет значительной роли. Другой пример - выборка (select). Это самый частый запрос. И надо подходить подумав и потестировав количество запросов и их качество. Где-то лучше объединить запросы в обид. А где-то разбить один запрос на несколько мелких. То есть никогда нельзя быть уверенным, что Правило одного Запроса всегда лучше. Как и в обратном - в Правиле Кучки Запросов. В твоём случае, кстати, лучше пользоваться мелкими запросами в силу слабых знаний мускула. Пусть их будет много, это почти никак не скажется.
ShamahN Я знаю. Как то раз насоздавал внешних ключей, а потом удивлялся, хрен ли они не работают. Мануал мне объяснил.
Прочитал, что есть такая команда OPTIMIZE TABLE. Скажите, желательно ли ее применять после удаления каждой записи или это не обязательно? lexa, спасибо за доходчивое разъяснение.
если места на серве не хватает (опять же, все зависит от организации проекта) и можно бахнуть пару миллиардов записей и если тип таблиц MyISAM, то уменьшения объема ты дождешься только после OPTIMIZE TABLE. Вроде все доходчиво написано
Вот это точно думаю не к чему. Вот просто как собаке пятая нога. Если период изменения (добавления/удаления) записей достаточно невелик - тупо лишний запрос, т.к.