首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按条件排序的MySQL查询

按条件排序的MySQL查询
EN

Stack Overflow用户
提问于 2015-09-11 16:38:27
回答 2查看 43关注 0票数 1

我有三张桌子:

( a) master_car

  • car_id
  • car_name

( b) running_car

  • running_car_id
  • car_id外键master_car
  • 日期

( c) favorite_car

  • favorite_id
  • car_id
  • user_id

跑车是主车约会的一个实例。因此,示例数据集:

master_car

代码语言:javascript
运行
复制
car_id - car_name
1 - Mercedes C Class
2 - Audi
3 - Volkswagen

running_car

代码语言:javascript
运行
复制
running_car_id - car_id - date
1 - 1 - 9 sep 2015
2 - 1 - 10 sep 2015
3 - 1 - 11 sep 2015
4 - 1 - 12 sep 2015
5 - 2 - 10 sep 2015
6 - 2 - 11 sep 2015
7 - 3 - 10 sep 2015
8 - 3 - 10 sep 2015

用户可以将汽车标记为最喜欢的

代码语言:javascript
运行
复制
favourite_id - car_id - user_id
1 - 2 - 1
2 - 1 - 2

当用户登录时,他需要看到所有正在行驶的汽车。但先按他最喜欢的车排序,然后再按其他的车排序。

为了前夫。如果具有user_id -1的用户登录,他需要看到以下结果:

代码语言:javascript
运行
复制
running_car_id - car_id - date
5 - 2 - 10 sep 2015
6 - 2 - 11 sep 2015
1 - 1 - 9 sep 2015
2 - 1 - 10 sep 2015
3 - 1 - 11 sep 2015
4 - 1 - 12 sep 2015
7 - 3 - 10 sep 2015
8 - 3 - 10 sep 2015

根据用户的喜好来获得排序结果的查询是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-11 16:47:59

不确定您到底想要什么,但这应该涵盖大部分内容:

代码语言:javascript
运行
复制
select r.running_id, r.car_id, r.date
from
    running_car r
    --inner join master_car m /* use this if you want to grab the name */
        --on m.car_id = r.car_id
    left outer join favourite_car f
        on f.car_id = r.car_id and f.user_id = <user_id>
order by
    case when f.favourite_id is not null then 1 else 2 end
票数 1
EN

Stack Overflow用户

发布于 2015-09-11 16:45:30

您是按favourite_id订购的,那么日期是正确的吗?如果是这样的话,这样的查询应该可以工作。它将running_car加入到favourite_car表和Left Joins中,只选择用户最喜欢的汽车。然后,它按最喜欢的顺序订购汽车,而不是最喜欢的。我不知道您是如何查询当前用户的,所以我将把它留给您插入。

代码语言:javascript
运行
复制
Select R.*
From running_car R
Left Join favourite_car F on R.car_id = F.car_id and U.(current user_id) = F.user_id
Order by
    (case when F.favourite_id is not null then 1 else 2 end), date
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32528246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档