使用PHP和MYSQL数据库查找不在另一个表中的结果?
所有请求记录都存在于请求表中。然后可以对它们进行筛选,因为其中一些还属于一个附加表,可以是预订表,也可以是拒绝表。Rooms和vwRoomRequest不影响此查询。 我试图返回已被“拒绝”的记录,因此它们同时存在于请求表和拒绝表中,并且这两个表的主键相同 在实际查询中,我使用group by Request.RequestID,因为这个查询返回2488个结果,而实际上请求表中只有17行 主要问题(除上述问题外)是,此查询返回的结果与查询的此行不存在的结果相同: 和Request.RequestIDBookingID和Request.requestIDDecedden.RequestID使用PHP和MYSQL数据库查找不在另一个表中的结果?,php,mysql,database,Php,Mysql,Database,所有请求记录都存在于请求表中。然后可以对它们进行筛选,因为其中一些还属于一个附加表,可以是预订表,也可以是拒绝表。Rooms和vwRoomRequest不影响此查询。 我试图返回已被“拒绝”的记录,因此它们同时存在于请求表和拒绝表中,并且这两个表的主键相同 在实际查询中,我使用group by Request.RequestID,因为这个查询返回2488个结果,而实际上请求表中只有17行 主要问题(除上述问题外)是,此查询返回的结果与查询的此行不存在的结果相同: 和Request.Request
SELECT *
FROM Request , Rooms, Booking, Declined, vwRoomRequest
WHERE Request.RoomID = Rooms.RoomID
AND Rooms.RoomID = vwRoomRequest.RoomID
AND Request.RequestID<>BookingID
AND Request.RequestID<>Declined.RequestID
选择*
来自请求、房间、预订、拒绝、vwRoomRequest
其中Request.RoomID=Rooms.RoomID
AND Rooms.RoomID=vwRoomRequest.RoomID
和Request.RequestIDBookingID
和Request.requestiddenced.RequestID
有什么想法吗?如果您试图返回所有被拒绝的请求,为什么不直接返回
被拒绝的表中的所有行,并返回您需要的任何其他表中的左连接?大概是这样的:
SELECT * FROM Declined
LEFT JOIN Request ON Declined.RequestID = Request.RequestID
LEFT JOIN Rooms ON Request.RoomID = Rooms.RoomID
LEFT JOIN vmRoomRequest ON Rooms.RoomID = vmRoomRequest.RoomID