我有下表:
Table: reservations
| name | phone_nr | progam | #invited_people | invitedby |
---------------------------------------------------------------
| Dustin | 5555555 | 1 | 3 | NULL |
| Joe | NULL | 1 | 0 | Dustin |
| Mary | NULL | 1 | 0 | Dustin |
| Tylor | 444555 | 1 | 1 | NULL |
| Cody | NULL | 1 | 0 | Tylor |
| Martin | NULL | 1 | 0 | Dustin |
我想在预订者之后对结果进行排序( invitedby == NULL
)发出邀请的人应该呆在最上面,被这个人邀请的人应该跟在后面。
期望输出:
Table: reservations
| name | phone_nr | progam | #invited_people | invitedby |
---------------------------------------------------------------
| Dustin | 5555555 | 1 | 3 | NULL |
| Joe | NULL | 1 | 0 | Dustin |
| Mary | NULL | 1 | 0 | Dustin |
| Martin | NULL | 1 | 0 | Dustin |
| Tylor | 444555 | 1 | 1 | NULL |
| Cody | NULL | 1 | 0 | Tylor |
我不太擅长sql。。我试过了 GROUP BY
“name”和“invitedby”列,但它不起作用。谢谢你的帮助!
创建和插入语句:
CREATE TABLE reservations (
`name` varchar(255) PRIMARY KEY,
`phone_nr` varchar(30),
`program` int NOT NULL,
`#invited_people` int NOT NULL,
`invitedby` varchar(255)
);
INSERT INTO reservations (name, phone_nr, program, `#invited_people`, invitedby) VALUES ('Dustin', '5555555', 1, 3, NULL), ('Joe', NULL, 1, 0, 'Dustin'), ('Mary', NULL, 1, 0, 'Dustin'), ('Tylor', 444555, 1, 1, NULL), ('Cody', NULL, 1, 0, 'Tylor'), ('Martin', NULL, 1, 0, 'Dustin')
我尝试过的查询(但不起作用): SELECT * FROM reservation GROUP BY name,invitedby
ps:我正在本地机器上使用mariadb和xampp。
1条答案
按热度按时间hivapdat1#
你可以用
order by
: