回答

收藏

基于标签的SQL查询

技术问答 技术问答 367 人阅读 | 0 人回复 | 2023-09-12

自从我完成任何事情SQL已经有一段时间了,我不确定这个问题是否有一个简单的解决方案。我也有点菜鸟。
8 u1 C, W2 T% I/ E我试图建立一个图库,允许用户使用标签搜索图像,然后单击其他标签来优化搜索,减少结果的数量,但查询存在很大的问题。
( a0 y  P( D* \% R8 k) G: c9 f7 }0 U* |' z这是我目前数据库结构的简化版:
6 a2 w  c) ?& E% Q. B5 I(两个表和一个额外的多对多链接表)
9 u# j5 V3 W) |0 I2 C  G1 VCREATE TABLE images(   image_id INT(12) AUTO_INCREMENT,  image_name VARCHAR(128),  PRIMARY KEY(image_id))ENGINE= INNODB;CREATE TABLE tags(   tag_name VARCHAR(64) NOT NULL,  PRIMARY KEY(tag_name))ENGINE= INNODB;CREATE TABLE images_tags_link(   image_id_fk INT(12),  tag_name_fk VARCHAR(64) NOT NULL,  PRIMARY KEY(image_id_fk,tag_name_fk),  FOREIGN KEY(image_id_fk) REFERENCES images(image_id),  FOREIGN KEY(tag_name_fk) REFERENCES tags(tag_name))ENGINE= INNODB;样本数据:4 r; p5 ?8 p1 B6 Z
    ===images=== ___________________________       | image_id |  image_name    |     |----------|----------------|     |     1    |  image_001.jpg |     |    2                                                                                                                                                                                                                                                                                                                                                                                                                                                            |  image_002.jpg |     |     3           3                       |  image_003.png |     |     4             |  image_004.jpg |     |   5 5                5                                 5                                                                                                                                                                                           5                    5 5 5  5 5            5                                       5                                       5 5                                   5                              5                                               5                                       5                                                                           |  image_005.gif |      ---------------------------                                      ===tags===                                  _______________|    tag_name   ||---------------|| Landscape     || Portrait      || Illustration  || Photo         || Red           || Blue          || Character     || Structure     | ---------------===images_tags_link=== ________________________________| image_id_fk | tag_name_ fk     ||-------------|------------------||      1      |    Landscape     ||      1      |    Illustration  ||      1      |    Blue          ||     2                                                                                                                                                                                                                                                                                                                                                                                                                                                              |    Blue          ||     2                                                                                                                                                                                                                                                                                                                                                                                                                                                              |    structure     ||     2                                                                                                                                                                                                                                                                                                                                                                                                                                                              |    Landscape     ||      3           3                         |    Illustration  ||      4               |    Red           ||      4               |    Portrait      ||      4               |    Character     ||    5 5                5                                 5                                                                                                                                                                                           5                    5 5 5  5 5            5                                       5                                       5 5                                   5                              5                                               5                                       5                                                                             |    Blue          ||    5 5                5                                 5                                                                                                                                                                                           5                    5 5 5  5 5            5                                       5                                       5 5                                   5                              5                                               5                                       5                                                                             |    Photo         | --------------------------------我的问题如下:6 k& P6 `. S! E- j0 }/ [2 e
我正在寻找询,可以从IMAGES选择所有用户列出的所有标签 image_names例如,用户可以搜索 Blue”和“3 |/ k8 O* q0 X" s: I8 M1 }7 Q
Landscape这些标签只能输出image_names“ image_001” .jpg”和“ image_002.jpg”。0 c7 p4 q$ Y' b+ i. G" S
===输入===+ u7 C3 U5 y: u& [  e6 Z" O
用户选择的标签:(’Blue’,’Landscape’)
$ ~  C# U# A$ S===输出===4 A. |7 Q# {, c2 u, M) ^
所有列出标签的图像名称:(’image_001.jpg’,’image_002.jpg’)
* O! D$ g, x& J# f+ i9 q- x2 g' S: F' f; `提前致谢。6 e" ^8 `0 Q7 C. ]7 I* C8 w: ]
                                                                5 H3 r5 H3 W  n8 }2 w  r' A/ ~
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则