回答

收藏

mysql:有多个标签和相同的标签id的行

技术问答 技术问答 327 人阅读 | 0 人回复 | 2023-09-14

我遇到一个问题的连接时,我遇到了一个无法确定的问题mysql有两个特定的标签hashid”的链接
) y% c: Z! ]$ J) v假设我的手表看起来像这样:
! W0 B2 g7 V: u7 ?& l4 J5 m链接
3 R9 `/ U% x. x5 x2 Zmd5     url         title   numberofsaves-----------------------------------------a0a0    google.com  foo     200b1b1    yahoo.com   yahoo   100标签+ [& X7 e5 B# R' p0 F0 e
    md5    tag --------------- a0a0   awesome a0a0   useful a0a0   cool b1b1   useful b1b1   boring我想回到有有用和伟大标签的行
1 I$ r4 m3 Z7 v9 Z, ~4 o, S+ [9 L目前(工作/快速)查询用于按1个标签查找链接:
& D9 F; p9 d  j( S) O6 E3 p* _% J4 BSELECT links.title,links.numsaves FROM links LEFT JOIN tags ON links.md5=tags.md5 WHERE tags.tag = 'useful' ORDER BY links.numberofsaves DESC LIMIT 20阅读文章后,我试图使用以下内容:( {+ H, p0 [6 H- Y
SELECT links.title,links.numsaves FROM links LEFT JOIN tags ON links.md5=tags.md5 GROUP BY tags.md5 HAVING SUM(tags.tag='useful') AND SUM(tags.tag='awesome') ORDER BY links.numberofsaves DESC LIMIT 20这 不    工作,但它是如此令人难以置信的缓慢,因为它不能使用。
+ L  Q, `. t( u- l有人知道解决方案吗?
" O: d0 r4 f9 y+ Y. x/ L5 u4 O                                                               
0 J! [. {* J7 q# ]: _# e    解决方案:                                                               
8 D6 w1 I6 x4 [                                                                问题的类型叫 Relational Division) b* R6 _$ I9 t+ [" G2 V4 M( ]
SELECT  a.md5、         a.url,       a.titleFROM    Links a        INNER JOIN Tags b            ON a.md5 = b.md5WHERE   b.Tag IN ('awesome','useful') -- 关系部门的SQL</u>输出# L7 t5 L" `4 h) i6 i
╔══════╦════════════╦═══════╗║ MD5  ║    URL     ║ TITLE ║╠══════╬════════════╬═══════╣║ a0a0 ║ google.com ║ foo   ║
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则