【发布时间】:2023-03-03 08:07:19
【问题描述】:
编辑注意!我知道它看起来令人困惑,但 steveo 的回答
SELECT * from orders Group by orderId with 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;
但是当我指定master的ID(订单表中的masterId列)时,尽管应该有两个订单,但我只得到一个结果 我只是不明白为什么会这样 谢谢
【问题讨论】:
-
数据类型显示为 INT,但数字显示为与列的左侧对齐。这正常吗?
-
@Strawberry 我不知道,你在问吗?但它让我感到困惑
-
可以说,我无法复制这个观察结果。 :-( db-fiddle.com/f/n6XpUtTEroz8dpxVmURJY9/0
-
@Strawberry,我看到了你的回答,我知道这看起来令人困惑,但 steveo314 的回答帮助了我,尽管没有在哪里使用,而是使用了有声明
-
我非常怀疑这是正确的
标签: mysql sql database select where-clause