首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按公用值排序的MySQL请求

按公用值排序的MySQL请求
EN

Stack Overflow用户
提问于 2015-01-24 23:22:01
回答 1查看 74关注 0票数 1

我正面临着一个小的SQL查询问题。

让我解释一下我会怎么做。

我有一个会员表,我会按两个成员之间共有的标签数量进行排序。

这是创建一个交友网站的建议列表。

在我的第一个表“member”中,我使用了“idmem”。

在第二个“hashtag”中,我有以下几列:“idhash ",”idmem ",“hashtags”。

目前,我正在提出这个请求。

代码语言:javascript
运行
复制
SELECT m.*, 
       nbhash.nb
  FROM member AS m
             INNER JOIN
               (SELECT count(*) AS nb, 
                       mh.idmem 
                  FROM hashtags AS h 
                           INNER JOIN hashtags AS mh 
                              ON h.hashtags = mh.hashtags 
                 WHERE h.idmem = '3016') nbhash
 WHERE m.idmem != '3016'
   AND m.sexe = 'female'
   AND m.orientsexe = 'male'
   AND nbhash.idmem = m.idmem 

代码语言:javascript
运行
复制
member table

idmem | pseudo   | sexe   | orientsexe |
3016  | jhon     | male   | female     |
3017  | laura    | female | male       |
3018  | david    | male   | male       |
3019  | jessica  | female | male       |
3020  | clara    | female | female     |
3021  | isabelle | female | male       |
3022  | melanie  | female | male       |
3023  | fred     | male   | female     |

hashtags table

idhash | idmem | hashtags
1      | 3016  | basketball
2      | 3016  | cinema
3      | 3017  | basketball
4      | 3017  | cinema
5      | 3019  | basketball
6      | 3020  | cinema
7      | 3021  | basketball
8      | 3021  | football

我想按这个顺序来看:

劳拉(3017),伊莎贝尔(3021),杰西卡(3019),梅勒妮(3022)

因为Laura和Jhon (我)有两个相同的标签,isabelle和我有一个相同的标签......我想见梅勒妮,即使她没有任何标签!

EN

回答 1

Stack Overflow用户

发布于 2015-01-25 00:23:22

我想你一定需要一个order byleft join

代码语言:javascript
运行
复制
SELECT m.*,  coalesce(nbhash.nb, 0)
FROM member m LEFT JOIN
     (SELECT count(*) AS nb,  mh.idmem 
      FROM hashtags h INNER JOIN
           hashtags mh 
           ON h.hashtags = mh.hashtags 
      WHERE h.idmem = '3016'
     ) nbhash
     ON nbhash.idmem = m.idmem 
WHERE m.idmem <> '3016' AND m.sexe = 'female' AND m.orientsexe = 'male'
ORDER BY coalesce(nbhash.nb, 0) DESC
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28126987

复制
相关文章

相似问题

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