合并两个SQL查询
问题描述:
大家好我试图合并两个查询:合并两个SQL查询
SELECT DISTINCT name,$price
FROM room
JOIN room_booking ON room.room_id=room_booking.room_id
WHERE date_booked<>'$us_date' AND capacity>=$partySize
和
SELECT DISTINCT room_id
FROM room_booking
WHERE room_id NOT IN
(SELECT DISTINCT room_id
FROM room_booking
WHERE date_booked = '$date'
)
什么是上述合并的最佳途径,使最终的查询检查在room_booking表中不存在的日期,并在给定容量超过给定容量时从房间表中提取相关信息。
答
本应该做文中所述的作业(但我不知道什么date_booked<>'$us_date'
是应该做的):
select name, price
from room
where capacity >= $partySize
and room_id not in
(select room_id
from room_booking
where date_booked = '$date'
)
答
尝试用以下的方式合并:
SELECT DISTINCT name,$price
FROM room JOIN room_booking ON room.room_id=room_booking.room_id
WHERE date_booked<>'$us_date' AND capacity>=$partySize AND room_booking.room_id IN (SELECT DISTINCT room_id
FROM room_booking
WHERE room_id NOT IN
(SELECT DISTINCT room_id
FROM room_booking
WHERE date_booked = '$date'
));
答
也许
SELECT DISTINCT name,$price
FROM room
JOIN room_booking ON room.room_id=room_booking.room_id
WHERE date_booked<>'$us_date' AND capacity>=$partySize
AND date_booked <> '$date'
?
或者你是否想列出所有room_id的?只需将room_id添加到选择列表中。你可以放弃在这种情况下的独特,因为我假设room_id的是独特的
**什么**数据库系统,以及哪个版本? ** SQL **只是结构化查询语言(Structured Query Language) - 许多数据库系统使用的语言 - SQL是** NOT **数据库产品......类似这样的东西通常是供应商特定的 - 所以我们真的需要知道什么您正在使用的数据库系统.... – 2012-03-18 11:31:31
我正在使用** phpMyAdmin **。 – methuselah 2012-03-18 11:33:58