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 :: как объеденить 2 селекта

 PHP.SU

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


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

> Без описания
3d_killer
Отправлено: 11 Декабря, 2014 - 13:35:19
Post Id



Участник


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


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




Есть 2 запроса:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT module_catalog_property_name.name
  2.         FROM module_catalog_property_name

и
CODE (SQL):
скопировать код в буфер обмена
  1.         SELECT module_catalog_product_property_value.property
  2.         FROM module_catalog_product_property_value
  3.         LEFT JOIN module_catalog_goods_product ON
  4.                 module_catalog_goods_product.id=module_catalog_product_property_value.product  
  5.         WHERE module_catalog_goods_product.goods_id=23
  6.         GROUP BY module_catalog_product_property_value.property


первый получает все свойства которые существуют, а второй получает все свойства которые используются в товарах которые принадлежат категории с ID 23, хотелось бы получить результат состоящий из всех свойств которые существуют а во второй колонке использование (если не используется то NULL) или можно конечно 2 колонкой получить количество использования (хотя мне кажется более грузоватый запрос будет)
 
My status
 Top
LIME
Отправлено: 11 Декабря, 2014 - 13:40:43
Post Id


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


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


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




module_catalog_property_name должен содержать FK на module_catalog_goods_product
по нему и джойнь
для общего развития погугли EAV
(Добавление)
LIME пишет:
module_catalog_property_name должен содержать FK на module_catalog_goods_product
вру
скорее module_catalog_product_property_ value на module_catalog_property_name или наоборот
хз как там у тебя реализовано
ищи поле связи
 
 Top
3d_killer
Отправлено: 11 Декабря, 2014 - 13:46:51
Post Id



Участник


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


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




таблицы как бы связаны сейчас набросаю структуру будет понятнее
 
My status
 Top
LIME
Отправлено: 11 Декабря, 2014 - 13:49:12
Post Id


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


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


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




3d_killer пишет:
сейчас набросаю структуру будет понятнее
ты офигел?
ты первый раз таблицы видешь?
давай ка сам подумай через что они связаны
и EAV всеже погугли раз с ecommerce связался
там оно сплошь и рядом
кстать что за двиг?
(Добавление)
после общего прочтения об EAV
http://forum.php.su/topic.php?fo...8&topic=5211
там я создавал простенький его вариант
(Добавление)
если магента то есть статья
оно?
 
 Top
3d_killer
Отправлено: 11 Декабря, 2014 - 14:00:13
Post Id



Участник


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


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




не ну че сразу офигел Улыбка) я запрос построить не могу никак, двиг мой, схему я тоже выкладывал рисовал
[url]
http://forum.php.su/printfile.ph...;t=1011&id=1
[/url]
как связано я знаю, а вот запрос построить не получается
(Добавление)
суть такова, что при редактировании пункта каталога хочу выкинуть все свойства которые есть, которые проставлены поставить галочки из таблицы (module_catalog_property_to_catalog), а вот которые используются на товарах из этого каталога (проставлены), эти галочки залочить чтобы их снять нельзя было
 
My status
 Top
LIME
Отправлено: 11 Декабря, 2014 - 14:06:17
Post Id


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


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


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




3d_killer пишет:
как связано я знаю, а вот запрос построить не получается
так если схема твоя собственная то проблемы твои собственные
тыж когда схему создавал думал как запросы будут делаться?
в нормальном варианте это тупо джойны
внимательно рассмотри ссылку что я дал
там пример реализации
в принципе он такой же что и у тебя я надеюсь
атрибут связан с продуктом
значение атрибута связано с атрибутом
все просто как табурет
в чем затык?
тыж уже не первый раз в первый класс
(Добавление)
прочел добавление
это 2 запроса и не трахай нормальным людям мозг
(Добавление)
интересно может ты и пагинацию в 1 запрос решишь запаковать?
(Добавление)
надо же соображать
есть атрибуты продукта...есть остальные атрибуты
их вытянуть 1ним запросом сам господь бог не сможет
тьфу блин...еще на форум побежал
 
 Top
3d_killer
Отправлено: 11 Декабря, 2014 - 14:15:56
Post Id



Участник


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


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




LIME пишет:
интересно может ты и пагинацию в 1 запрос решишь запаковать?

нет это уже проходили там 2 запроса Улыбка
 
My status
 Top
3d_killer
Отправлено: 11 Декабря, 2014 - 14:29:31
Post Id



Участник


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


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




можно получить нужную инфу одним запросом (пока количество выдает не правильно)
(Добавление)
в таблице checked это выбрано и count это сколько раз используется (пока не правильно)
Прикреплено изображение (Нажмите для увеличения)
123123.jpg
 
My status
 Top
LIME
Отправлено: 11 Декабря, 2014 - 14:37:13
Post Id


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


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


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




3d_killer чувак не парься лишним запросом
делай 2 и не ... мозги
уверен это не есть горлышко бутылки
и вообще...в современном мире писать свой ecommerce это идиотизм
в магенте все уже реализовано даже то что ты и помыслить не в состоянии(спокойно я тоже не в состоянии)
маркетологи молятся на тот функционал...ты 50 лет это будешь реализовывать и всеравно будешь отставать
я не просто так говорю я сейчас какраз в магазине работаю...в нескольких...официальных от производителя..известные марки мировые...перестань велосипедить...не угонишься))
(Добавление)
и раз уж зашла у меня речь то на каждой странице у нас выполняется 200 запросов минимум...
не менее
спасает блочное и полностраничное кеширование
и это правильно с точки зрения бизнеса
заказчику глубоко положить насколько изячный ты придумал запрос
ему важно насколько ты бысто выполнишь задачу потому как он за это деньги платит
и тут кеш спасает его
понятно что надо стремиться к оптимизации но надо и понимать цели твоей работы
а твоя цель обеспечить бизнес
да?))
(Добавление)
ну и как следствие идут запросы в цикле итд итп
ит это не есть плохо...это есть реалии профессии
 
 Top
3d_killer
Отправлено: 11 Декабря, 2014 - 14:52:19
Post Id



Участник


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


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




Свойств может быть дохрена и че каждое проверять???, движок давно реализован просто добавляю кое-какой функционал и заодно это решил переписать.
По поводу того что велосипедить, пока есть спрос я делаю да и заказчики довольны понятным интерфейсом и возможностями, а так же быстродействием, пару магазинов перевел с битрикса очень довольны скоростью работы. Так что пока платят и есть спрос я работаю...
и запрос я написал:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT module_catalog_property_name.name,
  3. module_catalog_property_name.id,
  4. module_catalog_property_to_catalog.id_property AS checked,
  5. (SELECT COUNT(module_catalog_product_property_value.value)
  6.         FROM module_catalog_product_property_value
  7.         LEFT JOIN module_catalog_goods_product ON
  8.         module_catalog_goods_product.id= module_catalog_product_property_value.product
  9.         WHERE module_catalog_product_property_value.property=module_catalog_property_name.id AND module_catalog_goods_product.goods_id=22) AS count
  10.  
  11. FROM module_catalog_property_name
  12.  
  13. LEFT JOIN module_catalog_property_to_catalog ON
  14. module_catalog_property_to_catalog.id_property=module_catalog_property_name.id AND module_catalog_property_to_catalog.id_catalog=22
  15.  
  16. GROUP BY module_catalog_property_name.name
  17.                
  18.  

(Добавление)
LIME пишет:
и раз уж зашла у меня речь то на каждой странице у нас выполняется 200 запросов минимум...
вот как раз я и оптимизирую рабочее
 
My status
 Top
3d_killer
Отправлено: 11 Декабря, 2014 - 15:03:49
Post Id



Участник


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


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




итого я получил данные свойство, ID свойства, стоит ли галочка, Сколько раз используется в продуктах из этого каталога.
Сейчас на месте галочки NULL так как перенос осуществляю с другого движка, и еще вобщем не заполнил
Прикреплено изображение (Нажмите для увеличения)
123123.jpg
 
My status
 Top
LIME
Отправлено: 11 Декабря, 2014 - 15:04:44
Post Id


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


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


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




3d_killer пишет:
Так что пока платят и есть спрос я работаю
этого никто не отменял))
так в чем вопрос собстна?????
хочешь 1 запрос сэкономить?
иди в пень
....ой блин
сначала написал потом увидел у тебя конкретный косяк в запросе
CODE (SQL):
скопировать код в буфер обмена
  1. (SELECT COUNT(module_catalog_product_property_value.value)
  2.         FROM module_catalog_product_property_value
  3.         LEFT JOIN module_catalog_goods_product ON
  4.         module_catalog_goods_product.id= module_catalog_product_property_value.product
  5.         WHERE module_catalog_product_property_value.property=module_catalog_property_name.id AND module_catalog_goods_product.goods_id=22) AS count
этот запрос будет выполняться на каждую строку основного запроса
в смысле буквально сколько будет рядов столько раз этот подзапрос будет выполнятся
это такназываемый связаный запрос
надо объяснять что это очень хреново?
перенеси его в джойн и будет счастье
если не перенесешь я с тобой здороваться перестану и вообще тебя не знаю
 
 Top
3d_killer
Отправлено: 11 Декабря, 2014 - 15:04:45
Post Id



Участник


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


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




этот
Прикреплено изображение (Нажмите для увеличения)
111.jpg
 
My status
 Top
LIME
Отправлено: 11 Декабря, 2014 - 15:06:00
Post Id


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


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


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




я в смысле что подзапрос стоит в полях селекта...если не понял спроси ...хотя итак можно понять
 
 Top
3d_killer
Отправлено: 11 Декабря, 2014 - 15:07:06
Post Id



Участник


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


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




3d_killer пишет:
если не перенесешь я с тобой здороваться перестану и вообще тебя не знаю
перестань, я не знаю как селект в джоине сделать не могу пример найти вот вобще по этому поводу я тему и создавал
 
My status
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB