MySQL查询:尝试合并两个表的信息

MySQL查询:尝试合并两个表的信息,mysql,Mysql,我一直在尝试通过在两个不同的表中组合信息来为我的数据库构建查询: 第一个被称为项目分布,有两列:一列用于文件夹ID,另一列用于项目ID 第二个被称为item\u tags,它也有两列:一列用于tag\u ID,另一列用于item ID 让我们想象一种情况: 在第一个表中,我有以下信息(哪些项目在哪些文件夹中): 在第二个表中,显示以下行(哪些项目具有哪些标记): 我如何才能获得文件夹00001中所有项目的独特item\u ID,这些项目同时具有标签00001和00002?是否可以只使用一个查询表

我一直在尝试通过在两个不同的表中组合信息来为我的数据库构建查询:

第一个被称为
项目分布
,有两列:一列用于
文件夹ID
,另一列用于
项目ID

第二个被称为
item\u tags
,它也有两列:一列用于
tag\u ID
,另一列用于
item ID

让我们想象一种情况:

在第一个表中,我有以下信息(哪些项目在哪些文件夹中):

在第二个表中,显示以下行(哪些项目具有哪些标记):

我如何才能获得文件夹00001中所有项目的独特
item\u ID
,这些项目同时具有标签00001和00002?是否可以只使用一个查询表达式

非常感谢


Oriol

我认为这会起作用:

select distinct f.item_ID
from folders f
join tags t1 on f.itemID = t1.item_ID and t1.tag_ID = '00001'
join tags t2 on f.itemID = t2.item_ID and t2.tag_ID = '00002'
where f.folder_ID = '00001'

如果要列出它们,请使用以下命令:

SELECT *
FROM item_distribution ID
LEFT JOIN item_tags IT ON ID.item_ID = IT.item_id;
这将返回连接在一起的两个表

您可以在连接后添加where子句以缩小结果范围(例如,每个文件夹或每个项目)


@用户597009不客气。请考虑通过点击它旁边的复选标记来接受(和/或上投票)正确答案。你应该这样做的所有问题,你已经问了一个正确的答案。
select distinct f.item_ID
from folders f
join tags t1 on f.itemID = t1.item_ID and t1.tag_ID = '00001'
join tags t2 on f.itemID = t2.item_ID and t2.tag_ID = '00002'
where f.folder_ID = '00001'
SELECT *
FROM item_distribution ID
LEFT JOIN item_tags IT ON ID.item_ID = IT.item_id;
WHERE ID.folder_ID = '00001';