我想从收据薄中打印丢失的收据编号(即我没有使用过的收据编号)。
我有一个名为receipt_book的表,我可以在其中定义接收编号范围(即开始和结束编号),如1到100。然后我会根据范围插入收据编号。现在,我想要一个MySQL查询来获取我没有使用的数字的列表。例如:
+-----------------+--------------+------------+
| receipt_book_id | start_number | end_number |
+-----------------+--------------+------------+
| 1 | 1 | 5 |
+-----------------+--------------+------------+
+----------------+--------------+
| user_id |receipt_number|
+----------------+--------------+
| 1| 1 |
| 2| 3 |
+----------------+--------------+在上面的表格中,我使用了收据编号1,3
我想要低于预期的结果
+----------------------+
| NotUsedReceiptNumber |
+----------------------+
| 2 |
| 4 |
| 5 |
+----------------------+发布于 2019-10-10 21:04:16
考虑创建一个包含所有可能的收据编号(1,2,...,100)的表,并将其连接起来:
SELECT receipt_numbers.receipt_number
FROM receipt_book
INNER JOIN receipt_numbers ON receipt_numbers.receipt_number BETWEEN receipt_book.start_number AND receipt_book.end_number
LEFT JOIN receipt_used ON receipt_numbers.receipt_number = receipt_used.receipt_number
WHERE receipt_used.receipt_number IS NULLhttps://stackoverflow.com/questions/58323304
复制相似问题