Quel est le problème avec ma requête SQL?
Il continue de renvoyer l'erreur suivante à la WHERE building_id=:building_id
:
Vous avez une erreur dans votre syntaxe SQL; vérifier lamanuel qui correspond à la version de votre serveur MySQL pour la bonne syntaxe à utiliser près de ": building_id AND WHERE NOT EXISTS (SELECT 1 FROM ts_roompref" à la ligne 5: SELECT COUNT (*) totalCount FROM ts_room WHERE building_id =: building_id AND WHERE NOT EXISTS (SELECT 1 FROM ts_roompref JOIN ts_request ON ts_roompref.request_id = ts_request.roompref_id AND day_id = 1 AND period_id = 1 WHERE ts_room.id = ts_roompref.room_id)
Voici mon code:
SELECT
COUNT(*) totalCount
FROM
ts_room
WHERE building_id=:building_id AND
WHERE
NOT EXISTS (
SELECT 1
FROM ts_roompref
JOIN ts_request
ON ts_roompref.request_id = ts_request.roompref_id
AND day_id = 1
AND period_id = 1
WHERE
ts_room.id = ts_roompref.room_id)
J'ai une table SQL ici - http://sqlfiddle.com/#!2/30297/8
Réponses:
3 pour la réponse № 1Laisse tomber le second WHERE
mot-clé.
Cela ne sera pas compilé dans SQL Fiddle en raison de :buildingid
.
2 pour la réponse № 2
Vous n'avez pas besoin de deuxième WHERE après ET
... WHERE building_id=:building_id AND NOT EXISTS ...
2 pour la réponse № 3
Vous n'avez besoin que d'un WHERE
SELECT
COUNT(*) totalCount
FROM
ts_room
WHERE building_id=:building_id AND
NOT EXISTS (
SELECT 1
FROM ts_roompref
JOIN ts_request
ON ts_roompref.request_id = ts_request.roompref_id
AND day_id = 1
AND period_id = 1
WHERE
ts_room.id = ts_roompref.room_id)
2 pour la réponse № 4
Après AND
tu n'es pas censé écrire WHERE
une seconde fois.