/ / Difficulté à placer 2 WHERE dans une requête SQL - mysql

Difficulté à placer 2 WHERE dans la requête SQL - mysql

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 № 1

Laisse tomber le second WHERE mot-clé.

Cela ne sera pas compilé dans SQL Fiddle en raison de :buildingid.

Voici un exemple de travail.


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.