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

Форум MySQL

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

 

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

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

тема: Использование оператора IN
 
 автор: Alexneo   (18.04.2006 в 00:51)   письмо автору
 
 

Здравствуйте, проблема встала при выборке данных из нескольких таблиц(поиск уже юзал). В общем есть две таблицы:

-- Структура таблицы 'announcements_map'
-- 
DROP TABLE IF EXISTS 'announcements_map';
CREATE TABLE IF NOT EXISTS 'announcements_map' (
  'id_map' int(11) NOT NULL auto_increment,
  'id_rub' int(11) NOT NULL default '0',
  'id_subrub' int(11) NOT NULL default '0',
  PRIMARY KEY  ('id_map')
) TYPE=MyISAM; 

-------------------------------------------------------------

-- Структура таблицы 'announcements_rub'
-- 
DROP TABLE IF EXISTS 'announcements_rub';
CREATE TABLE IF NOT EXISTS 'announcements_rub' (
  'id_rub' int(11) NOT NULL auto_increment,
  'rub_name' varchar(30) binary NOT NULL default '',
  PRIMARY KEY  ('id_rub')
) TYPE=MyISAM; 

от пользователя приходит запрос на удаление определенной рубрики(ее имя) из announcements_rub. Необходимо сначала удалить все записи из announcements_map, а затем уже из announcements_rub. Так сказать, для обеспечения целостности.
Вот код который юзаю():
$delrub - содержит текстовое значение рубрики
в следующем коде $delrub="Недвижимость"

if(!mysql_query("Delete from announcements_map where id_rub in(Select id_rub from announcements_rub where rub_name='$delrub')"))
            echo mysql_error();
          else
            echo "ok";
exit;

-----------------------------------------------------
все это дело вываливается в следующее:

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 'Select id_rub from announcements_rub where rub_name='Недвижимос

rub_name='Недвижимос - именно так и вываливается...строка не закончена. Запрос вроде как написан правильно - занимаюсь SQL достаточно долго,но вот с такой проблемой столкнулся впервые. Прошу помощи. Заранее спасибо

   
 
 автор: cheops   (18.04.2006 в 01:22)   письмо автору
 
   для: Alexneo   (18.04.2006 в 00:51)
 

А версия MySQL какая?

   
 
 автор: Alexneo   (18.04.2006 в 02:31)   письмо автору
 
   для: Alexneo   (18.04.2006 в 00:51)
 

MySQL 4.0.17

   
 
 автор: Alexneo   (18.04.2006 в 02:33)   письмо автору
 
   для: Alexneo   (18.04.2006 в 02:31)
 

хотелось бы конечно реализовать через этот запрос...но если не получится, то какие вы можете предложить пути для разрешения данной проблемы

   
 
 автор: cheops (из кафе)   (18.04.2006 в 09:17)
 
   для: Alexneo   (18.04.2006 в 02:31)
 

Хм... а вообще должён бы работать... если никто не опередит, как доберусь до машины с MySQL версии выше 4.1 попробую воспроизвести ситуацию.

   
 
 автор: Alexneo   (19.04.2006 в 01:57)   письмо автору
 
   для: cheops (из кафе)   (18.04.2006 в 09:17)
 

ну что вы мне посоветуете?

   
 
 автор: cheops   (19.04.2006 в 16:13)   письмо автору
 
   для: Alexneo   (19.04.2006 в 01:57)
 

А если пробел поставить между in и открывающей скобкой (
if(!mysql_query("Delete from announcements_map where id_rub in (Select id_rub from announcements_rub where rub_name='$delrub')")) 
            echo mysql_error(); 
          else 
            echo "ok"; 
exit;

   
 
 автор: Alexneo   (21.04.2006 в 00:07)   письмо автору
 
   для: cheops   (19.04.2006 в 16:13)
 

попробовал. не помогло

   
Rambler's Top100
вверх

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