编辑注意!我知道它看上去很让人困惑,但我的回答是装卸工
通过具有orderId = masterId = 29的命令组选择*
帮帮我,我只是不知道它是怎么工作的
我不知道发生了什么,我只是得到了错误的结果
CREATE TABLE `orders` (
`orderId` int NOT NULL AUTO_INCREMENT,
`userId` int NOT NULL,
`masterId` int NOT NULL,
`serviceId` int NOT NULL,
`startTime` datetime NOT NULL,
`endTime` datetime NOT NULL,
`timeSlotId` int DEFAULT NULL,
`isApplied` tinyint(1) NOT NULL,
`isDone` tinyint(1) NOT NULL,
PRIMARY KEY (`orderId`),
KEY `FK_user` (`userId`),
KEY `FK_master` (`masterId`),
KEY `FK_timeSlotOrder` (`timeSlotId`),
CONSTRAINT `FK_master` FOREIGN KEY (`masterId`) REFERENCES `masters` (`masterId`) ON DELETE CASCADE,
CONSTRAINT `FK_timeSlotOrder` FOREIGN KEY (`timeSlotId`) REFERENCES `time_slot` (`timeSlotId`) ON DELETE CASCADE,
CONSTRAINT `FK_user` FOREIGN KEY (`userId`) REFERENCES `user_info` (`userId`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;现在,我在一个表中有两行:

当我发出select命令时,我得到了正确的结果集:

但是,当我指定id of master(masterId列在order表中)时,我只得到一个结果,尽管应该有两个订单

我只是不明白为什么会这样,谢谢
发布于 2021-06-09 16:24:45
试试这个:
SELECT *
FROM salon.orders
GROUP BY orderId
HAVING masterId = 29https://stackoverflow.com/questions/67908063
复制相似问题