PHP MYSQL 类似文件

我需要下载类似的结果。详细写下,如果我从“files”表的特定文件写入数据,我希望看到其他文件下面有相同的记录“id_tag_main”。


我有桌子:


标签


id  |  name  | 


 1     one  

 2     two 

 3     three   

标签文件


id | id_tag | id_file | id_tag_main


 1     1        1          3

 2     -        2          2

 3     -        3          2

 4     -        4          2

文件


id |    name   | 


 1     city  

 2     vehicles 

 3     weather   

 4     gifts

我需要 Mysql php 查询,我尝试了 LEFT JOIN 但结果不正确。


如果我从文件“车辆”中选择,那么车辆有"id_tag_main" = 2并且我想要更多文件在哪里"id_tag_main" = 2


慕容森
浏览 118回答 2
2回答

HUWWW

如果您只能从文件中选择车辆,那么您需要执行以下查询SELECT f.nameFROM tags_files tf INNER JOIN files f ON tf.id_file = f.idWHERE id_tag_main = (SELECT id_tag_main                      FROM tags_files                      WHERE id_file = (SELECT id FROM files WHERE name = 'vehicles' ));CREATE TABLE tags_files (  `id` int,  `id_tag` int,  `id_file` int,  `id_tag_main` int);INSERT INTO tags_files  (`id`, `id_tag`, `id_file`, `id_tag_main`)VALUES  ('1',     '1',        '1',          '3'),  ('2',     NULL,        '2',          '2'),  ('3 ',    NULL,        '3',          '2'),  ('4',   NULL,        '4',          '2');✓✓CREATE TABLE files (  `id` int,  `name` VARCHAR(14));INSERT INTO files  (`id`, `name`)VALUES  ('1',     'city'),  ('2',     'vehicles'),  ('3',     'weather'),  ('4',     'gifts');✓✓CREATE TABLE tags (  `id` int,  `name` VARCHAR(11));INSERT INTO tags  (`id`, `name`)VALUES  ('1',     'one'),  ('2',     'two'),  ('3',     'three');✓✓SELECT f.nameFROM tags_files tf INNER JOIN files f ON tf.id_file = f.idWHERE id_tag_main = (SELECT id_tag_main                      FROM tags_files                      WHERE id_file = (SELECT id FROM files WHERE name = 'vehicles' ));| 姓名 || :-------- || 车辆 || 天气|| 礼品|

炎炎设计

也许是这个?   select *   from files as f1   left join tags_files on tags_files.id_tag_main = f1.id   left join files as f2 on tags_files.id_file = f2.id   where f1.name = 'vehicles'
打开App,查看更多内容
随时随地看视频慕课网APP