簡體   English   中英

按“ORDER BY”查詢的順序排序

[英]Sort the order of “ORDER BY” query

我需要以某種方式使用另一個表的順序來訂購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可以為null。

需要分組的表:

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是親戚。

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

你需要在這里使用連接。 這將創建一個結果集,該結果集可以包含兩個表中的值,也可以按任一表中的值進行排序或分組。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM