- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Как реализовать конструкцию:
WHERE IN (...)
чтобы она проверяла некоторые данные для двух полей по одному списку, при многотабличной выборке, т.е.:
Прямо так в мускуле нельзя. Но вы лучше поясните что вы хотите получить, потому что даже если бы такое условие сработало, вы бы получили декартово произведение таблиц, просто слегка ограниченное.
Прямо так в мускуле нельзя. Но вы лучше поясните что вы хотите получить, потому что даже если бы такое условие сработало, вы бы получили декартово произведение таблиц, просто слегка ограниченное.
Прямо так нельзя - через AND тоже не работает.
Есть три таблицы:
first.id
first.value
second.id
second.id_from_first
second.value
third.id
third.id_from_first
third.value
Т.е. вторая и третья хранят свои данные "привязанные" к первой. В результате работы скрипта получаются некоторые выборочные значения first.id (не вся таблица, а выборка)
Задача выбрать все данные из 2-й и 3-й таблиц одним запросом используя именно этот список значений.
malls, декартово произведение это то же что и join. сцепите таблицы, а потом уже через and накладывайте еще фильтры.
malls, декартово произведение это то же что и join. сцепите таблицы, а потом уже через and накладывайте еще фильтры.
Я пытался разобраться с JOIN - но не врубился.
Можете привести пример кода для описанного случая.
SELECT *
FROM first,second,third
WHERE
/* это объединение */
first.id=second.id and first.id=third.id
and
/* а это условия фильтрации */
first.value IN (1,2,3,4) and second.value in (1,2,3,4) ;
попробуйте запрос без условий, чтобы увидеть разницу.
first.value IN (1,2,3,4) and second.value in (1,2,3,4) ;
так как раз не работает, тоже.
только у меня задача другая, вот так я пробовал:
second.id_from_first IN (1,2,3,4) and third.id_from_first in (1,2,3,4) ;
Насчет декартова я бы поспорил. При указании хоть одного параметра "фильтрации", а точнее параметра склейки - получается сечение, а без оных - чистое произведение.
Так вот. malls, опишите задачку поконкретнее.
Допустим вам надо объединить три таблицы - вуаля
select ... from t1,t2,t3...
where t1.field1=t2.field2 and t2.field3=t3.field4 and..
чтобы не получить произведения, условий должно быть минимум на одно меньше чем таблиц.
а дальше прицепляйте свое условие, только вот я так и не понял что за условие должно быть. Тупо из пересечения таблиц выбрать те где пара полей в заданном диапазоне? Если эти поля не участвуют в пересечении, то конструкция, которую вы писали, должна работать. Если участвуют - то между ними OR, все и к общему условию цеплять по AND.
Вас можно понять и иначе - может вы добиваетесь
select ... from t1
where field1 in (1,2,3)
union
select ... from t2
where field2 in (1,2,3)
тока тогда выбираемые поля должны совпадать по количеству, и типу с учетом порядка
да, декартово произведение я попутал.
из объяснений непонятно что за условие там ставить. то ли OR, то ли AND.
Как реализовать конструкцию:
WHERE IN (...)
чтобы она проверяла некоторые данные для двух полей по одному списку, при многотабличной выборке, т.е.:
FROM first, second
WHERE first.id = second.field
AND first.id IN (1,2,3,4)
ps: угадал?
зыы:
select ... from t1
where field1 in (1,2,3)
union
select ... from t2
where field2 in (1,2,3)
тока тогда выбираемые поля должны совпадать по количеству, и типу с учетом порядка
если нужно такое, лучше разделить на 2 запроса
если нужно такое, лучше разделить на 2 запроса
тут и есть два запроса =)