Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SQL запрос / 6 сообщений из 6, страница 1 из 1
08.04.2015, 12:47
    #38930335
legioner_007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
Добрый день
Нужна помощь в составлении запроса.
исходные данные

типы значений
1растояние2планировка3общая площадь

обьявления
1 1 обьявление2 2 обьявление

значения обьявлений
id id обьявления id типа значение1 1 1 10 км2 1 3 10 кв3 2 3 12 кв4 2 2 новая


мне нужно получить вот такую выборку
id обьявления расстояние планировка обьщая площадь1 10 км 10 кв2 новая 12 кв


авторSELECT
adt.id,
prop1.value,
prop2.value,
prop3.value
FROM
advert as adt

INNER JOIN propertyvalue as adt_prop1 ON adt_prop1.advert_id = adt.id
INNER JOIN property as prop1 ON prop1.id = adt_prop1.type_id

INNER JOIN propertyvalue as adt_prop2 ON adt_prop2.advert_id = adt.id
INNER JOIN property as prop2 ON prop2.id = adt_prop2.type_id

INNER JOIN propertyvalue as adt_prop3 ON adt_prop3.advert_id = adt.id
INNER JOIN property as prop3 ON prop3.id = adt_prop3.type_id

WHERE
prop1.name LIKE 'растояние' AND prop2.name LIKE 'планировка' AND prop3.name LIKE 'общая площадь';

так как некоторых значений у меня нет то получаю пустую выборку. Помогите составить запрос. Заранее спасибо.
...
Рейтинг: 0 / 0
08.04.2015, 12:55
    #38930358
tadmin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
legioner_007,

left join?
...
Рейтинг: 0 / 0
08.04.2015, 13:51
    #38930461
legioner_007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
tadmin,
к сожалению нет, пустая выборка.
...
Рейтинг: 0 / 0
08.04.2015, 14:08
    #38930502
tadmin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
legioner_007,

вам нужно либо попытаться понять принципы построения запросов, либо в случайном порядке менять inner на left и AND на OR
Если бы вы приложили переносимый скрипт, вам, скорее всего, помогли.
Никто не станет набивать за вас таблицы данными
...
Рейтинг: 0 / 0
08.04.2015, 14:18
    #38930524
Ivan Durak
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
legioner_007tadmin,
к сожалению нет, пустая выборка.
+ max(value) и group by по id
...
Рейтинг: 0 / 0
08.04.2015, 14:26
    #38930543
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL запрос
legioner_007,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT a.id,
       p1.value p1_v,
       p2.value p2_v,
       p3.value p3_v
  FROM advert a
  LEFT JOIN prop_value p1 ON a.id=p1.a_id AND p1.type=1
  LEFT JOIN prop_value p2 ON a.id=p2.a_id AND p2.type=2
  LEFT JOIN prop_value p3 ON a.id=p3.a_id AND p3.type=3;


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


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