SELECT c.*FROM categories AS c LEFTJOIN objects AS o ON c.cat_id = o.obj_cat_id
то дублируются категории.Как выбрать категории без дубликатов.
Второе:
В таблице objects есть поле status.Так вот как построить запрос что бы выбирал категории, у объектов которых status != 0.То есть например есть категория "Авто" к ней привязаны 5 объектов status у которых (у всех) равен 0.Как сделать что бы при запросе эта категория игнорировалась?
----- $i = 0;
$i = $i++ + ++$i; ?
eai
Отправлено: 27 Сентября, 2012 - 17:48:05
Частый посетитель
Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009 Откуда: Петроград
Помог: 10 раз(а)
jonston пишет:
Здравствуйте!Есть 2 таблицы (objects, categories).Отношение одна категория ко многим объектам.Когда делаю запрос типа:
SELECT c.*FROM categories AS c LEFTJOIN objects AS o ON c.cat_id = o.obj_cat_id
то дублируются категории.Как выбрать категории без дубликатов.
Второе:
В таблице objects есть поле status.Так вот как построить запрос что бы выбирал категории, у объектов которых status != 0.То есть например есть категория "Авто" к ней привязаны 5 объектов status у которых (у всех) равен 0.Как сделать что бы при запросе эта категория игнорировалась?
Категории выбираются несколько раз если у них несколько объектов, соответственно если хочется выбрать тока категории то только к ним запрос и надо, или уточните задачу. В MSSQL так де есть волшебное слово DISTINCT, должно помочь.
(вроде в мускле тоже есть это волшебное заклинание)
2.
LEFT заменить на INNER, в WHERE пихнуть условие, задача сводится к первой
Хотя задача поставлена не четко, нужно ли выбирать если есть хотя бы одна запись с 0 и что делать с записями без объектов?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.