Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не работает многотабличное удаление
 
 автор: asker   (11.02.2012 в 17:43)   письмо автору
 
 

запрос, нужно удалить комманду с id=1 и всех ее игроков, делаю так:

delete from team 
left join payer 
on team.id=player.team 
where team.id=1


вылетает error:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'join payer on team.id=player.team where team.id=1' at line 2


в чем ошибка ?

Структура таблиц


сообщение об ошибке
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'join payer on team.id=player.team where team.id=1' at line 2

Структура таблиц

CREATE TABLE IF NOT EXISTS `player` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nickname` char(8) DEFAULT NULL,
`password` char(8) NOT NULL,
`rank` float(4,2) NOT NULL DEFAULT '50.00',
`region` enum('west','south') NOT NULL,
`team` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
KEY `team` (`team`)
) ENGINE=InnoDB

ALTER TABLE `player`
ADD CONSTRAINT `player_ibfk_1` FOREIGN KEY (`team`) REFERENCES `team` (`id`);


CREATE TABLE IF NOT EXISTS `team` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(16) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB

  Ответить  
 
 автор: cheops   (11.02.2012 в 17:59)   письмо автору
 
   для: asker   (11.02.2012 в 17:43)
 

Когда вы используете многотабличное удаление, вы должны указать таблицы из которых удаляете после ключевого слова DELETE, ведь вы можете удалить только из одной таблице или из двух. Нужно явно указать из каких таблиц происходит удаление.

  Ответить  
 
 автор: asker   (11.02.2012 в 20:29)   письмо автору
 
   для: cheops   (11.02.2012 в 17:59)
 

delete from team, player  
left join player
on team.id=player.team
where team.id=1


хм, таже проблема...

  Ответить  
 
 автор: cheops   (11.02.2012 в 21:22)   письмо автору
 
   для: asker   (11.02.2012 в 20:29)
 

Таблицы, из которых производится удаление размещаются между delete и from.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования