Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает WHERE при выборе из двух таблиц 
:(
    Опции темы
letsgo
Дата 30.12.2010, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 17.2.2009

Репутация: нет
Всего: нет



Здравствуйте.
Для составления запроса скрипту передаётся два параметра.
Первый -  currency (валюта)
Второй - max_price (максимальная цена)

Делаем такой запрос:
Код

SELECT `prices`.`price`$query_curr as price from `prices` WHERE `price` <= '$max_price'

Т.е. мы выбираем из таблицы `prices` все строки, в которых price меньше переменной $max_price.
Переменная $query_curr в запросе зависит от значения передаваемого параметра $currency,

Код

if ($currency == 1) $query_curr = " * (SELECT `value` FROM `valute` WHERE `numcode` = `prices`.`valute`)";

Т.е., если $currency == 0, $query_curr == пустота, а иначе мы делаем запрос на выборку из другой таблицы и умножаем ячейку 
`prices`.`price` на ячейку `valute`.`value`

Проблема состоит в следующем:

Если currency == 0, то условие выборки (
Код

where `price` <= '$max_price'
)  работает нормально, т.е. в результатах запроса нет строк, в которых `price` больше значения переменной $max_price,

НО, если currency == 1, то условие выборки не работает, т.е. в результатах запроса присутствуют строки, в значениях которых есть `price` больше переменной $max_price.

Т.е., если мы не обращаемся к другой таблице и не умножаем цену, то ограничение срабатывает, а если обращаемся, то вываливаются все результаты.
Подскажите, что делаю не так?

Спасибо.


Это сообщение отредактировал(а) letsgo - 30.12.2010, 13:03
PM MAIL   Вверх
skyboy
Дата 30.12.2010, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



приведи структуру таблиц и логику,по которой должен работать запрос.
по запросу
Код

SELECT `prices`.`price`$query_curr as price from `prices` WHERE `price` <= '$max_price' 
* (SELECT `value` FROM `valute` WHERE `numcode` = `prices`.`valute`)

мало что можно понять.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0734 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.