Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Except

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: не работает...
bioz000
Отправлено: 17 Декабря, 2011 - 18:37:50
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




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

Пытаюсь использовать такую конструкцию.

CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT contents FROM table WHERE conditions1 EXCEPT SELECT contents FROM table WHERE conditions2


Не работает.

Вообще очень мало инфы по оператору EXCEPT, может есть какая альтернатива?
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2011 - 18:41:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




А не проще вложенный SELECT ?
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT contents FROM TABLE WHERE conditions1 NOT IN (SELECT contents FROM TABLE WHERE conditions2)

И мой пример запроса не будет работать. Подмигивание
Может быть и у вас та же проблема.
Предполагаю необходимость использования алиасов.
Какую ошибку выдает?
 
 Top
bioz000
Отправлено: 17 Декабря, 2011 - 19:04:29
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




DeepVarvar пишет:
А не проще вложенный SELECT ?
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT contents FROM TABLE WHERE conditions1 NOT IN (SELECT contents FROM TABLE WHERE conditions2)

Я где-то вычитал, что NOT IN очень медленно работает. Если так, то хреного.
Впрочем щас попробую.

DeepVarvar пишет:

Какую ошибку выдает?


А никакую не выдает. И вообще ничего не возвращет.
(если что, езаю денвер, делаю запрос через php)
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2011 - 19:07:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




 
 Top
bioz000
Отправлено: 17 Декабря, 2011 - 19:17:47
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




Цитата:
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 'EXCEPT SELECT id s01 s02 cont FROM tab1 WHERE id BETWEEN 300000 AND ' at line 1


:/
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2011 - 19:27:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ну для начала перепишите запрос с использованием алиасов.
 
 Top
Champion Супермодератор
Отправлено: 17 Декабря, 2011 - 20:01:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




В мускуле нету EXCEPT. По-моему. Можно через not exists сделать
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB