2010-06-22 6 views
0

J'ai trois tables dans la recherche de restaurant fait en php. La recherche a l'option de filtrer par type multiple par état de case à cocher. Certains restaurants peuvent être de type multiple et auront plusieurs entrées dans la table type_stack.Empêcher la répétition de ligne de retour dans mysql

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 

Je veux avoir tous les restaurants qui répondent aux critères des types sélectionnés par l'utilisateur. Mais le problème c'est que je reçois le même restaurant plusieurs fois. Je veux seulement qu'une rangée soit montrée une fois.

C'est ma requête

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 

La requête est faite sur la base de l'état case à cocher! Dans ce cas, les types 0, 1 et 2 sont sélectionnés.

Répondre

5

Changer votre déclaration en (vous avez besoin 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 
Questions connexes