2 回答

TA貢獻1874條經驗 獲得超12個贊
如果您只能從文件中選擇車輛,那么您需要執行以下查詢
SELECT f.name
FROM tags_files tf INNER JOIN files f ON tf.id_file = f.id
WHERE 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.name
FROM tags_files tf INNER JOIN files f ON tf.id_file = f.id
WHERE id_tag_main = (SELECT id_tag_main
FROM tags_files
WHERE id_file = (SELECT id FROM files WHERE name = 'vehicles' ));
| 姓名 |
| :-------- |
| 車輛 |
| 天氣|
| 禮品|

TA貢獻1808條經驗 獲得超4個贊
也許是這個?
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'
- 2 回答
- 0 關注
- 100 瀏覽
添加回答
舉報