为什么我得到错误的结果集 mysql?
Why i get wrong result set mysql?
编辑注意!我知道它看起来令人困惑,但是 steveo
SELECT * 来自 orderId 的订单组的答案有 masterId = 29
帮助我,我只是不明白它是如何工作的
我不明白发生了什么,我只是得到了错误的结果
我有 table 个订单看起来不太像:
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;
现在我在 table 中有两行:
当我执行此 select 命令时,我得到了正确的结果集:
但是当我指定 master 的 id(按顺序 table 的 masterId 列)时,尽管应该有两个订单,但我只得到一个结果
我只是不明白为什么会这样
谢谢
试试这个:
SELECT *
FROM salon.orders
GROUP BY orderId
HAVING masterId = 29
编辑注意!我知道它看起来令人困惑,但是 steveo
SELECT * 来自 orderId 的订单组的答案有 masterId = 29
帮助我,我只是不明白它是如何工作的
我不明白发生了什么,我只是得到了错误的结果 我有 table 个订单看起来不太像:
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;
现在我在 table 中有两行:
当我执行此 select 命令时,我得到了正确的结果集:
但是当我指定 master 的 id(按顺序 table 的 masterId 列)时,尽管应该有两个订单,但我只得到一个结果
试试这个:
SELECT *
FROM salon.orders
GROUP BY orderId
HAVING masterId = 29