Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.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
使用PHP和MYSQL数据库查找不在另一个表中的结果?_Php_Mysql_Database - Fatal编程技术网

使用PHP和MYSQL数据库查找不在另一个表中的结果?

使用PHP和MYSQL数据库查找不在另一个表中的结果?,php,mysql,database,Php,Mysql,Database,所有请求记录都存在于请求表中。然后可以对它们进行筛选,因为其中一些还属于一个附加表,可以是预订表,也可以是拒绝表。Rooms和vwRoomRequest不影响此查询。 我试图返回已被“拒绝”的记录,因此它们同时存在于请求表和拒绝表中,并且这两个表的主键相同 在实际查询中,我使用group by Request.RequestID,因为这个查询返回2488个结果,而实际上请求表中只有17行 主要问题(除上述问题外)是,此查询返回的结果与查询的此行不存在的结果相同: 和Request.Request

所有请求记录都存在于请求表中。然后可以对它们进行筛选,因为其中一些还属于一个附加表,可以是预订表,也可以是拒绝表。Rooms和vwRoomRequest不影响此查询。 我试图返回已被“拒绝”的记录,因此它们同时存在于请求表和拒绝表中,并且这两个表的主键相同

在实际查询中,我使用group by Request.RequestID,因为这个查询返回2488个结果,而实际上请求表中只有17行

主要问题(除上述问题外)是,此查询返回的结果与查询的此行不存在的结果相同: 和Request.RequestIDBookingID和Request.requestIDDecedden.RequestID

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