bonjour,
J'ai un problème, je voudrais faire une requête sur plusieurs tables en même temps (3 pour être plus précis), et avec d'autres SELECT dans le WHERE (excusez-moi pour le vocabulaire).
voici la requête : $query = "SELECT * FROM premise_price AS t1, building_price AS t2, room_price AS t3 WHERE ((t1.priority='999') AND (t1.premise_id='".$pid."')) || ((t2.priority='999') AND (t2.building_id IN (SELECT building.building_id FROM building WHERE building.premise_id='".$pid."'))) || ((t3.priority='999') AND (t3.room_id IN (SELECT room.room_id FROM room WHERE room.building_id IN (SELECT building.building_id FROM building WHERE building.premise_id='".$pid."'))))";
bon ok je vous l'accorde elle est pas courte.
Le problème est que la requete m'affiche des valeurs qui ne devraient pas, plus précisément le problème est pour la prise en compte du t3.priority='999'. Lorsque je retire l'une des condition, comme ça :
$query = "SELECT * FROM premise_price AS t1, building_price AS t2, room_price AS t3 WHERE ((t1.priority='999') AND (t1.premise_id='".$pid."')) || ((t3.priority='999') AND (t3.room_id IN (SELECT room.room_id FROM room WHERE room.building_id IN (SELECT building.building_id FROM building WHERE building.premise_id='".$pid."'))))";
la requête ne m'affiche plus les valeurs que je ne veux pas, donc tout va bien, mais dès que je remet la requete que je veux (la première) les valeurs que je ne veux pas sont réafficher!
Je suis complêtement perdu, si quelqu'un a une idée ??!!
Partager