Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Условие в запросе / 2 сообщений из 2, страница 1 из 1
22.06.2016, 18:30
    #39260677
paha4444
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие в запросе
Мне нужно выбрать из таблицы только те записи у которых первое найденная запись в поле product_option_id не совпадает с последней найденной записью. Вот я набросал запрос, только ничего не возвращает. Помогите где ошибка. Спасибо

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT product_id FROM oc_product_option_value AS oc_pov
   
   WHERE oc_pov.product_id = (

                                  IF(
                                  (SELECT MIN(product_option_id) 
                                  FROM oc_product_option_value AS oc_pov2
                                  WHERE oc_pov2.product_id = oc_pov.product_id)
                                  <>
                                  (SELECT MAX(product_option_id) 
                                  FROM oc_product_option_value AS oc_pov3
                                  WHERE oc_pov3.product_id = oc_pov.product_id)
                                  ) AS pr_id
                                  
                                 ) 
 
   
                            )
...
Рейтинг: 0 / 0
22.06.2016, 19:55
    #39260736
paha4444
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие в запросе
Вобщем сделал так

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT oc_pov.product_id as product_id,
                
                   (SELECT product_option_id 
                   FROM oc_product_option_value AS oc_pov2
                   WHERE oc_pov2.product_id = oc_pov.product_id ORDER BY product_option_id ASC limit 1) as product_option_id_min,
                   
                   (SELECT product_option_id 
                   FROM oc_product_option_value AS oc_pov3
                   WHERE oc_pov3.product_id = oc_pov.product_id ORDER BY product_option_id DESC limit 1) as product_option_id_max
   
                  
   FROM oc_product_option_value AS oc_pov 
   
   INNER JOIN oc_product AS oc_p ON oc_p.product_id = oc_pov.product_id AND oc_p.status=1 
   
   
   WHERE oc_pov.option_id=1 GROUP BY oc_pov.product_id




ТОлько потом я уже в скрипте в цикле проверяю, если значения разные тогда это мой клиент))

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$count = 0;
while ($row = mysql_fetch_assoc($result)) {
  
  
 // print_r($row);
 
 if($row['product_option_id_min']!=$row['product_option_id_max']){
    echo '<p>'.$row['product_id'].'</p>';
    $count++;
 }

}



Всем спасибо. Удачи.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Условие в запросе / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]