Предотвратить повторный ряд от возвращения в MySQL - PullRequest
0 голосов
/ 22 июня 2010

У меня есть три таблицы в поиске ресторана в php. Поиск имеет возможность фильтровать его по нескольким типам по состоянию флажка. Некоторые рестораны могут относиться к нескольким типам и иметь несколько записей в таблице type_stack.

Table1 - **restaurant**
------+----------+----------
  id  +   name   +   place
------+----------+----------
   1      rest1       ny
   2      rest2       la
   3      rest3       ph
   4      rest4       mlp


Table2 - **r_type**
------+----------+----------
  id  +   name   +   code
------+----------+----------
   1      type1       0
   2      type2       1
   3      type3       2
   4      type4       3


Table3 - **type_stack**
------+----------+----------
  id  + rest_id  +   type
------+----------+----------
   1      2          2
   2      4          1
   3      1          2

Я хочу получить все рестораны, которые подпадают под типы, выбранные пользователем. Но проблема в том, что я получаю один и тот же ресторан несколько раз. Я хочу, чтобы строка отображалась только один раз.

Это мой запрос

SELECT restaurant.name, restaurant.place FROM restaurant, type_stack WHERE restaurant.id = type_stack.rest_id AND type_stack.type = '0' AND type_stack.type = '1' AND type_stack.type = '2' LIMIT 0 , 30

Запрос сделан на основе состояния флажка! В этом случае выбираются типы 0, 1 и 2.

1 Ответ

5 голосов
/ 22 июня 2010

Измените свое утверждение на (вам нужно DISTINCT):

SELECT DISTINCT restaurant.name, restaurant.place FROM restaurant, type_stack WHERE restaurant.id = type_stack.rest_id AND type_stack.type = '0' AND type_stack.type = '1' AND type_stack.type = '2' LIMIT 0 , 30
...