Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2015, 11:14   #1
TemaMadest
Новичок
Джуниор
 
Регистрация: 23.03.2015
Сообщений: 2
По умолчанию Проверка результата выборки

Добрый день, имеется запрос:
SELECT `sc`.`id`, `sc`.`type`, `sc`.`properties`, (SELECT `value` FROM `dveri_site_tmplvar_contentvalues` WHERE `tmplvarid` = '12' AND `contentid` = `sc`.`id` LIMIT 1) AS `price` FROM `dveri_site_content` `sc` WHERE `sc`.`id` IN (1285,169,163,161) ORDER BY ABS(`price`) asc LIMIT 0, 12

запрос в запросе выводит результат в поле price, как я понял, нужно в условии where сравнить этот самый price с 0. Как только я не пробовал ничего не получается.

пробовал вот так:
1)WHERE `sc`.`id` IN (1285,169,163,161) AND `price`<>0
2)WHERE `sc`.`id` IN (1285,169,163,161) AND `sc`.`price`<>0

по всякому пробовал - не получается. В SQL не силён. Куда копать? что я не так делаю?

Последний раз редактировалось TemaMadest; 23.03.2015 в 11:28.
TemaMadest вне форума Ответить с цитированием
Старый 23.03.2015, 11:33   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Куда копать?
в сторону соединения таблиц (JOIN)

чтобы иметь право писать where price <>0 это должно быть одним из полей базовой (sc) или какой-то присоединенной (путем JOIN)

примерно так
Код:
SELECT `sc`.`id`, `sc`.`type`, `sc`.`properties`
, `prlist`.`price`
FROM `dveri_site_content` `sc` 
LEFT JOIN ( -- присоединяем с минимальной ценой по каждому типу
          select min(`value`) as `price`, `contentid`, `tmplvarid`
            from `dveri_site_tmplvar_contentvalues` 
--------   where  `tmplvarid` = '12'
            group by `contentid`, `tmplavarid`
          ) as prlist on `prlist`.`contentid` =`sc`.`id`

WHERE `sc`.`id` IN (1285,169,163,161) 
  and `prlist`.`tmplvarid` ='12' 
  and `prlist`.`price`<>0  
ORDER BY ABS(`price`) asc LIMIT 0, 12
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 23.03.2015, 11:47   #3
TemaMadest
Новичок
Джуниор
 
Регистрация: 23.03.2015
Сообщений: 2
По умолчанию

Спасибо, сейчас попробую сделать как вы написали.

Почему-то не работает. Можно немного пояснить, SELECT ...,`prlist`.`price` что значит? Если не трудно, можно пошагово объяснить действия?

а вот так можно сделать?
Код:
SELECT `sc`.`id`, `sc`.`type`, `sc`.`properties` 
FROM `dveri_site_content` `sc`
        LEFT JOIN (SELECT `value` FROM `dveri_site_tmplvar_contentvalues`   WHERE `tmplvarid` = '12' AND `contentid` = `sc`.`id` LIMIT 1) AS `price`
        
        WHERE `sc`.`id` IN (1285,169,163,161) `price`<>0
        ORDER BY ABS(`price`) asc LIMIT 0, 12
Цитата:
Сообщение от evg_m Посмотреть сообщение
в сторону соединения таблиц (JOIN)

чтобы иметь право писать where price <>0 это должно быть одним из полей базовой (sc) или какой-то присоединенной (путем JOIN)

примерно так
Код:
SELECT `sc`.`id`, `sc`.`type`, `sc`.`properties`
, `prlist`.`price`
FROM `dveri_site_content` `sc` 
LEFT JOIN ( -- присоединяем с минимальной ценой по каждому типу
          select min(`value`) as `price`, `contentid`, `tmplvarid`
            from `dveri_site_tmplvar_contentvalues` 
--------   where  `tmplvarid` = '12'
            group by `contentid`, `tmplavarid`
          ) as prlist on `prlist`.`contentid` =`sc`.`id`

WHERE `sc`.`id` IN (1285,169,163,161) 
  and `prlist`.`tmplvarid` ='12' 
  and `prlist`.`price`<>0  
ORDER BY ABS(`price`) asc LIMIT 0, 12

чуть подправил, заработало)) Спасибо большое!

Последний раз редактировалось Stilet; 24.03.2015 в 17:15.
TemaMadest вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Критерия выборки WizarD.89 Microsoft Office Excel 2 25.03.2012 09:31
Суммирование из выборки Sandman2010 Microsoft Office Excel 0 01.02.2011 07:04
Проверка выборки на стохастичность. Нужна помощь в поиске длинн серий. zionkv Microsoft Office Excel 1 10.01.2010 16:13
Выборки из бд Lokos БД в Delphi 6 15.12.2009 15:20
сохранение результата выборки из DBF файла в DBF файл с такой же структурой таблицы GazimagomedovM БД в Delphi 5 06.11.2007 17:58