Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 此SQL查询的更好/备选措辞方式_Mysql - Fatal编程技术网

Mysql 此SQL查询的更好/备选措辞方式

Mysql 此SQL查询的更好/备选措辞方式,mysql,Mysql,写出以下查询的更好/更有效的方法是什么 当前SQL查询的工作做得很好,但我担心数据库变大时的处理时间 SELECT * FROM room JOIN catering ON room.room_id = catering.room_id WHERE capacity BETWEEN '$minCapacity' AND '$maxCapacity' AND room.room_id NOT IN (SELECT room_id FROM room_booking WH

写出以下查询的更好/更有效的方法是什么

当前SQL查询的工作做得很好,但我担心数据库变大时的处理时间

SELECT *
FROM room
JOIN catering ON room.room_id = catering.room_id
WHERE capacity BETWEEN '$minCapacity' AND '$maxCapacity' 
AND room.room_id NOT IN 
    (SELECT room_id
    FROM room_booking
    WHERE date_booked = '$us_date')
AND catering.grade = '$grade' ORDER BY room.capacity

您可以将
不在
中更改为
不存在
。如果有大量数据可以提高性能:

SELECT *
FROM room
JOIN catering ON room.room_id = catering.room_id
WHERE capacity BETWEEN '$minCapacity' AND '$maxCapacity' 
AND NOT EXISTS
(
    SELECT
        NULL
    FROM
        room_booking
    WHERE
        date_booked = '$us_date'
        AND room.room_id=room_booking.room_id
)
AND catering.grade = '$grade' 
ORDER BY room.capacity

您可以将
不在
中更改为
不存在
。如果有大量数据可以提高性能:

SELECT *
FROM room
JOIN catering ON room.room_id = catering.room_id
WHERE capacity BETWEEN '$minCapacity' AND '$maxCapacity' 
AND NOT EXISTS
(
    SELECT
        NULL
    FROM
        room_booking
    WHERE
        date_booked = '$us_date'
        AND room.room_id=room_booking.room_id
)
AND catering.grade = '$grade' 
ORDER BY room.capacity