- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть запрос выда:
Таблица zx_product_category_xref имеет следующий вид http://SSMaker.ru/f4d4fdf3/
Выше составленный запрос выбирает первое вхождение category_id (в моем случае меньшее), а нужно выбрать или оба через запятую или большее.
Есть какие-то соображения?
Заранее благодарю за помощь
Очень слабая постановка задачи, неясно что в других двух таблицах. По факту глубоко пофигу что в третей таблице, так как набор задается в первой, а остальные цепляются по условию связи.
если в приоритете в запросе категория, так и делайте выборку по этой таблице, в вашем запросе идет выборка по продукту, он один и категория берется одна первая из таблицы...
что то вроде
выведет обе категории
одну категорию можно вывести через группировку и MAX или сортировку с лимитом.
и пишите нормальный запрос, на схематический вопрос вы получаете схематический ответ))
выведет обе категории
...
и пишите нормальный запрос, на схематический вопрос вы получаете схематический ответ))
Запрос не схематически, а вполне нормально работающий, правда приходится запускать его дважды с ORDER и присоединением.
А фрагмент запроса в вашем случае вообще ничего не выведет, zx_product zx_ON - явная белиберда)))
Если нормально написать условие и поля таблица - получишь нормальный ответ. Запрос более чем схематичный.
А фрагмент запроса в вашем случае вообще ничего не выведет, zx_product zx_ON - явная белиберда)))
ну пропустил пробел... неужто не понятно, мне его не выполнять, и на ошибки не проверять) я вам про "главное", а вы мне пробел пропущенный...
"Схема" вот такая
дает кортеж всех перечисленных таблиц без условий. К продуктам будет добавлена цена и категория. Никаких "вхождений" тут не будет, просто телега станет немного шире.
"Схема" вот такая
дает кортеж всех перечисленных таблиц без условий. К продуктам будет добавлена цена и категория. Никаких "вхождений" тут не будет, просто телега станет немного шире.
А товарищ не хочет слышать. Выдал структуру одной таблицы и ждет экстрасенсов...
Составленный выше запрос выбирает все что есть, а для ограничений нет ни одного поля из первой таблицы
А, понял, zx_product_category_xref - n:M - телега должна еще и удлиниться. Ну все правильно выше было сказано - выбираете по соединительной таблице. Например таблица категорий та самая и тогда запрос:
select * from category as c
left join product as p
on p.id=c.pid
расширит ее данными из продуктов. Скажем в продуктах 100 записей, в категориях - 200 - получится 200 с повторами.
Теперь снизу дописываете все остальные нужные отношения и они попАдают в те же 200 туплей.
---------- Добавлено 12.06.2015 в 14:30 ----------
Есть гипотеза что в синтаксисе Оракл можно начинать с продуктов.
select * from product p, category c where p.id=c.pid;
Это join, просто без кляузы join. В теории драйвер должен сделать полное произведение двух таблиц, а потом из него выбрать только те отношения, которые удовлетворяют условию where.
---------- Добавлено 12.06.2015 в 14:35 ----------
Признаюсь что соображаю туго, не каждый день приходится заниматься проектированием бд, да и бд все какие-то простые попадаются, поэтому забывается. В общем чтобы начать с продуктов можно попробовать перевернуть на right join.
Определенно помню только факт, что если запрос настолько кривой, что оптмизатор его ниасилил, начнутся страшные лаги. Лучше все делать так, как подсказывает нормальная логика. Когда у вас есть отношение много-к-много, его сперва надо размножить, или как говорят - заселить - populate - и тогда уже на популяцию развешивать простые списки.
---------- Добавлено 12.06.2015 в 14:37 ----------
Да, и еще есть форум sql.ru и он-лайн фидлы для mysql.