请如何使用内部联接转换此查询?
(SELECT DISTINCT tables.table_id AS 'Available table ID'
FROM tables, reservation
WHERE tables.table_id = reservation.table_id
AND ((start_time <> ? AND date = ?)
OR (date <> ?))
OR status = 1)
INTERSECT
(SELECT DISTINCT tables.table_id AS 'Available table ID'
FROM tables, reservation
WHERE tables.table_id = reservation.table_id
AND ((start_time <> ? AND date = ?)
OR (date <> ? AND reservation.table_id <> ?))
OR status=1)
答案 0 :(得分:-1)
你可以试试这个:(我不确定你是否在寻找这个答案)
(SELECT DISTINCT tables.table_id AS 'Available table ID'
FROM tables JOIN reservation
ON (tables.table_id = reservation.table_id)
WHERE start_time <> ? AND date = ?
OR (date <> ?))
OR status = 1
INTERSECT
(SELECT DISTINCT tables.table_id AS 'Available table ID'
FROM tables JOIN reservation
ON (tables.table_id = reservation.table_id)
WHERE start_time <> ? AND date = ?
OR date <> ? AND reservation.table_id <> ?)
OR status=1