gpt4 book ai didi

php - 在mySQL中减去两个查询结果

转载 作者:行者123 更新时间:2023-11-29 02:25:25 24 4
gpt4 key购买 nike

我有 2 个查询,它们提供所有记录(包括预订的记录)并仅提供预订的记录。我想将两个表相减,只显示未登记的记录,查询结果示例如下:

查询 1:

+--------+--------+
| Number | AreaNo |
+--------+--------+
| 6 | A |
| 6 | B |
| 6 | C |
| 7 | A |
| 7 | B |
+--------+--------+

查询 2:

+--------+--------+
| Number | AreaNo |
+--------+--------+
| 6 | B |
| 6 | C |
| 7 | B |
+--------+--------+

期望的结果:

+--------+--------+
| Number | AreaNo |
+--------+--------+
| 6 | A |
| 7 | A |
| 7 | C |
+--------+--------+

我知道我不能在 mySQL 中使用 MINUS,但我不确定 LEFT JOIN 在这种情况下是否有效。如果这不起作用,是否可以处理 where 子句?(比如如果数字匹配,它只清除匹配 AreaNo 的那个)。我用两个 AND 子句尝试了这个,但它不起作用。它会清除不符合任何一个标准的结果。我已经做了一个多星期的研究,但没有任何效果。请帮忙,我真的很绝望。

查询 1:

SELECT bookingListNo,
areaNo
FROM BookingList,
BookingArea,
BookingLocation
WHERE bookingListNo NOT IN (SELECT bookingListNo
FROM Booking
WHERE bookingAreaNo IS NULL) AND
BookingList.bookingLocationNo = BookingLocation.bookingLocationNo AND
BookingLocation.BookingLocationNo = BookingArea.bookingLocationNo

查询 2:

SELECT bookingListNo, 
areaNo
FROM Booking,
BookingArea
WHERE Booking.bookingAreaNo = BookingArea.bookingAreaNo

最佳答案

这就是您的做法。

   SELECT Q1.Number, 
Q1.AreaNo
FROM Query1 Q1
LEFT JOIN Query2 Q2
ON Q1.Number = Q2.Number AND
Q1.AreaNo = Q2.AreaNo
WHERE Q2.Number IS NULL AND
Q2.AreaNo IS NULL

关于php - 在mySQL中减去两个查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23054057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com