【发布时间】:2013-12-22 20:40:00
【问题描述】:
我需要使用另一个表的顺序以某种方式对 ORDER BY 列进行排序。
包含排序的表:
CREATE TABLE IF NOT EXISTS `menu_category` (
`CATEGORY_ID` int(11) NOT NULL AUTO_INCREMENT,
`CATEGORY_NAME` varchar(20) NOT NULL,
`BUTTON_SORT` int(11) DEFAULT NULL,
PRIMARY KEY (`CATEGORY_ID`),
UNIQUE KEY `CATEGORY_NAME` (`CATEGORY_NAME`),
);
请记住,BUTTON_SORT 可以为空。
需要分组的表:
CREATE TABLE IF NOT EXISTS `ticket_item` (
`TICKET_ITEM_ID` int(11) NOT NULL AUTO_INCREMENT,
`TICKET_ITEM_DESC` varchar(30) NOT NULL,
`TICKET_PRINT_CAT` varchar(40) NOT NULL,
PRIMARY KEY (`TICKET_ITEM_ID`),
);
我目前使用这个查询:
SELECT
TICKET_ITEM_ID,
TICKET_ITEM_DESC
FROM ticket_item
WHERE
ticket_item.TICKET_ID = 1
GROUP BY TICKET_PRINT_CAT
这最终会做的是它会正确地对所有内容进行分组,但它的打印顺序只是按字母顺序排列。我需要按 BUTTON_SORT 的顺序对组进行排序。我不知道从哪里开始。
编辑:抱歉,TICKET_PRINT_CAT 和 CATEGORY_NAME 是相对的。
【问题讨论】:
-
是否有将这些表连接在一起的键?
-
是的,我编辑了我的帖子来做到这一点。 TICKET_PRINT_CAT 和 CATEGORY_NAME 是相对的。
标签: mysql sql sorting group-by sql-order-by