所有请求记录都存在于“请求”表中。然后可以对它们进行过滤,因为其中一些也属于附加表(预订或已拒绝)。客房和vwRoomRequest不会影响此查询。我正在尝试返回已被“拒绝”的记录,因此它们同时存在于“请求”表和“拒绝”表中,并且这两个表的主键将是相同的。在实际查询中,我使用的是group by Request.RequestID,因为当Request表中实际上只有17行时,此查询返回2488个结果!主要问题(上述问题除外)是此查询返回的结果与查询的此行不存在的结果相同: AND Request.RequestID BookingID和Request.RequestID Declined.RequestID。SELECT *FROM Request , Rooms, Booking, Declined, vwRoomRequestWHERE Request.RoomID = Rooms.RoomIDAND Rooms.RoomID = vwRoomRequest.RoomIDAND Request.RequestID<>BookingIDAND Request.RequestID<>Declined.RequestID有任何想法吗? 最佳答案 如果要返回所有已拒绝的请求,为什么不只返回Declined表和LEFT JOIN需要的其他表中的所有行呢?像这样:SELECT * FROM DeclinedLEFT JOIN Request ON Declined.RequestID = Request.RequestIDLEFT JOIN Rooms ON Request.RoomID = Rooms.RoomIDLEFT JOIN vmRoomRequest ON Rooms.RoomID = vmRoomRequest.RoomID关于php - 使用PHP和MYSQL数据库查找结果不在另一个表中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9370597/ 10-12 13:32