object street house region
..............
obj1 Иванова 5 область1
obj1 Иванова 5 область2
..........
как правильно составить sql запрос
Имеем:
SELECT id, operation, object, street, house, region, landmark,
furniture, washer, heater, fridge, tv, internet, window, shower, balcony, toilet,
price, pay_period, floor, floors, wall_material, all_area, living_area, kitchen_area, layout,
description, url, phone, source
FROM real_estate WHERE operation = '$tip_sdelki' AND object = '$object'
AND create_date >= SUBDATE(CURDATE(), INTERVAL 7 DAY)
AND url !=''
ORDER BY object, region, price
Нужно:
Тот же запрос, но чтобы выводимые данные были уникальны по набору полей: object, street, house
добавление в конец GROUP BY object, street, house - выдает ошибку
???
Единственное чего нет - телепатов на этом форуме.
ок, вот такая конструкция:
SELECT id, operation, DISTINCT(object, street, house), region, landmark,
furniture, washer, heater, fridge, tv, internet, window, shower, balcony, toilet,
price, pay_period, floor, floors, wall_material, all_area, living_area, kitchen_area, layout,
description, url, phone, source
FROM real_estate WHERE operation = '$tip_sdelki' AND object = '$object'
AND create_date >= SUBDATE(CURDATE(), INTERVAL 7 DAY)
AND url !=''
не работает - ошибка в синтаксисе, а вот как правильно написать не знаю, единственное предположение - разбивать на несколько запросов в скрипте.
Код:
Когда я писал про телепатов, я имел ввиду, что данных вообще нет. Не отчего оотолкнуться. Был бы дамп какой-то, можно было бы понять о чём речь.
grgdvo, прав говоря что для одной уникальной записи по перечисленным полям могут быть разные значения по оставшимся полям.
я пробовал на другой таблице с использованием GROUP BY так там как раз выбирались первые уникальные записи остальные просто отбрасывались. Я конечно могу приложить пару строчек из таблицы для примера.
Как вам сказали, телепатов нет...=)
Допустим, после группировки получилось две группы:
Код:
grp1:
object street house id
1 1 1 1
1 1 1 2
1 1 1 3
grp2:
object street house id
2 2 2 4
2 2 2 5
2 2 2 6
...
object street house id
1 1 1 1
1 1 1 2
1 1 1 3
grp2:
object street house id
2 2 2 4
2 2 2 5
2 2 2 6
...
Код:
select
re.* --тут список полей с альясами
from
real_estate as re
join (
select
max(id) as maxid,
object,
street,
house
from
real_estate
where
operation = '$tip_sdelki'
and object = '$object'
and create_date >= subdate(curdate(), interval 7 day)
and url !=''
group by
object,
street,
house
) as rem on
rem.maxid = re.id and
rem.object = re.object and
rem.street = re.street and
rem.house = re.house
order by
re.object, re.region, re.price
re.* --тут список полей с альясами
from
real_estate as re
join (
select
max(id) as maxid,
object,
street,
house
from
real_estate
where
operation = '$tip_sdelki'
and object = '$object'
and create_date >= subdate(curdate(), interval 7 day)
and url !=''
group by
object,
street,
house
) as rem on
rem.maxid = re.id and
rem.object = re.object and
rem.street = re.street and
rem.house = re.house
order by
re.object, re.region, re.price
1 1 1 3
2 2 2 6