[英]Sort the order of “ORDER BY” query
I need to somehow order the ORDER BY column by using another table's order. 我需要以某种方式使用另一个表的顺序来订购ORDER BY列。
Table that contains sort: 包含排序的表:
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`),
);
Keep in mind that BUTTON_SORT can be null. 请记住,BUTTON_SORT可以为null。
Table that needs grouping: 需要分组的表:
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`),
);
I currently use this query: 我目前使用此查询:
SELECT
TICKET_ITEM_ID,
TICKET_ITEM_DESC
FROM ticket_item
WHERE
ticket_item.TICKET_ID = 1
GROUP BY TICKET_PRINT_CAT
What this ends up doing is that it will group everything correctly, but the order of which it is printed is just alphabetical. 最终做的是它会正确地对所有内容进行分组,但是它的打印顺序只是按字母顺序排列。 I need to sort the groups by order of BUTTON_SORT instead.
我需要按BUTTON_SORT的顺序对组进行排序。 I have no idea where to start for this.
我不知道从哪里开始。
EDIT: I apologize, TICKET_PRINT_CAT and CATEGORY_NAME are relative. 编辑:我道歉,TICKET_PRINT_CAT和CATEGORY_NAME是亲戚。
SELECT
TICKET_ITEM_ID,
TICKET_ITEM_DESC
FROM ticket_item
INNER JOIN menu_category ON menu_category.CATEGORY_NAME=ticket_item.TICKET_PRINT_CAT
WHERE
ticket_item.TICKET_ID = 1
GROUP BY TICKET_PRINT_CAT
ORDER BY menu_category.BUTTON_SORT
You need to use joins here. 你需要在这里使用连接。 This creates a result set that can have values from both tables, and also can be ordered or grouped by values from either table.
这将创建一个结果集,该结果集可以包含两个表中的值,也可以按任一表中的值进行排序或分组。
SELECT
ticket_item.TICKET_ITEM_ID, ticket_item.TICKET_ITEM_DESC
FROM ticket_item
LEFT JOIN table2 on ticket_item.someColumnOnTable1 = table2.someColumnOnTable2
ORDER BY table2.whateverColumnYouWantToOrderBy
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.