0

SQLクエリの何が問題になっていますか?

:で次のエラーを返し続けますWHERE building_id=:building_id

SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、':building_id AND WHERE NOT EXISTS(SELECT 1 FROM ts_roompref' at line 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)

これが私のコードです:

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)

ここにSQLテーブルがあります-http://sqlfiddle.com/#! 2/30297/8

4

4 に答える 4

3

WHERE2番目のキーワードをドロップするだけです。

が原因で、これはSQLFiddleでコンパイルされません:buildingid

これが実際の例です。

于 2013-02-16T01:38:10.173 に答える
2

ANDの後に2番目のWHEREは必要ありません

... WHERE building_id=:building_id AND NOT EXISTS ...
于 2013-02-16T01:38:12.610 に答える
2

必要なのは1つだけです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)
于 2013-02-16T01:38:13.483 に答える
2

ANDあなたが二度と書くことになっていない後WHERE

于 2013-02-16T01:38:39.047 に答える