- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
да, декартово произведение я попутал.
из объяснений непонятно что за условие там ставить. то ли OR, то ли AND.
Блин уморился это делать... В общем суть такая, есть примерно такие таблицы:
Задача выбрать из всех таблиц одним запросом, все что:
1. Соответствует списку городов, т.е.
WHERE города.id IN (1,3) (исключаются улицы с id: 1,2,4)
2. Соответствует определенным улицам, т.е.:
AND улицы.name IN (street 1,street 3) (доп. исключаются улицы с id: 6)
3. И при этом живут там определенные люди:
AND люди.name IN (Вася,Коля) (обратно включаются улицы с id: 1)
Итого, если делать:
FROM города,люди,улицы
WHERE города.id IN (1,3)
AND улицы.name IN (street 1,street 3)
AND люди.name IN (Вася,Коля)
в выборку не попадает первый Вася (что и логично), но он нам нужен, а если делать так:
FROM города,люди,улицы
WHERE города.id IN (1,3)
AND улицы.name IN (street 1,street 3)
OR люди.name IN (Вася,Коля)
тихо шифером шурша мускуль едет куда-то в сторону абсолютного зависания.
Как быть?
SELECT * FROM `city`,`street`,`people`
WHERE `city`.`id`=`street`.`city_id` AND
`street`.`id`=`people`.`street_id` AND
(
`city`.`id` IN (1,3) AND
`street`.`name`in ('street1','street3')
OR
`people`.`name` in ('Вася','Коля')
)
Так? Единственное условие работоспособности - чтобы не было улиц с городом, которого нет в city и не было людей которые живут на улицах, не указанных в `street`. Здесь например 6я улица не попадет в выборку уже потому что на ней никто не живет (если вы не опечатались в таблице людей)
malls, cнова бредите (противоречите сами себе ) .
просто запишите не списком с комментариями, а в терминах логических отношений и запрос сам напишется.
как это все понимать ?
я понимаю ваш список как (п.1 ) И (п.2) И (п.3) . первый вася всем трем условиям не удовлетворяет, но вы пишите, что первый вася вам нужен.