SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.03.2014 08:38:26

teus
Участник
Зарегистрирован: 16.03.2014
Сообщений: 2

Запрос к 4 таблицам и выбор минимального значения

Добрый день, помогите пожалуйста с запросом к БД mysql
Есть 4 таблицы cost, price, description, house
http://savepic.ru/5083627m.jpg
В таблице house - название жилья, в description - подробное описание ,price - список связей description-cost, cost - цены.
Между таблицами description и cost - связь многие ко многим , через таблицу price
Каждому жилищу - может соответствовать несколько цен ПРИМЕР:

Дом 1 - описание 1 <--- описание 1 = цена 1 ---> Цена 1 (150 руб)
<--- описание 1 = цена 2 ---> Цена 2 (250 руб)
<--- описание 1 = цена 3 ---> Цена 3 (135 руб)

Нужно составить запрос, который будет выводить все дома с описанием и минимальной ценой (т.е. в запросе нужно выбирать минимальную цену для каждого дома)
Нужно получить:

Дом 1 - описание 1 - Цена - 135 руб
Дом 2 - описание 2 - Цена .....
............... и т.д. .........

Уже второй день разбираюсь, никак не могу понять принцип построения такого запроса, просто объединить через join могу, но выводятся объекты с повторами и со всеми ценами..

Дошел до такого запроса, но он ничего не выводит, потому что выбирается минимальная цена, во всей таблице , короче не правильно..

select title, description_id, z.low from house
    join description on house.id = description.house_id
    join (
        select cost_id, description_id, low from price
            join (
                    select min(price) as low, cost.id as lowid from cost
                    join price on price.cost_id = cost.id
                    join description on description.id = price.description_id
                    where price.description_id = description.id
                ) as t on lowid = price.cost_id
           
        ) as z on description.id = z.description_id
    where house.town_id = 1 and house.house_type_id = 1;

Неактивен

 

#2 16.03.2014 09:22:10

teus
Участник
Зарегистрирован: 16.03.2014
Сообщений: 2

Re: Запрос к 4 таблицам и выбор минимального значения

На 3- й день , вроде что-то получилось, глянул бы кто понимающий , правильно или нет

select house.id, house.title, house.title_alias, house.description, min(price) from house
    join description on house.id = description.house_id
    join price on price.description_id = description.id
    join cost on price.cost_id = cost.id
where house.town_id = 1 and house.house_type_id = 1 and house.published = 0
group by house.id;

Неактивен

 

#3 16.03.2014 10:15:07

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Запрос к 4 таблицам и выбор минимального значения

Правильно, а если хотите разобраться, то посмотрите статью про группировку в MySQL

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson