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

时间:2011-11-05 16:11:02

标签: mysql

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

第一个名为item_distribution,有两列:一列用于folder_ID,另一列用于item_ID

第二个名为item_tags,也有两列:一个用于tag_ID,另一个用于item ID

让我们想象一下情况:

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

folder_ID      item_ID
00001          00001
00001          00002
00001          00003
00002          00004
00001          00005
00001          00006

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

tag_ID         item_ID
00001          00001
00002          00001
00003          00001
00001          00002
00003          00002
00001          00003
00002          00003
00001          00004
00001          00005
00002          00005

如何获得文件夹00001中所有项目的不同item_ID并且标记为00001和00002?是否只能使用一个查询表达式?

非常感谢!

奥里奥尔

2 个答案:

答案 0 :(得分:1)

我认为这会奏效:

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'

答案 1 :(得分:-1)

如果你想列出它们,请使用:

SELECT *
FROM item_distribution ID
LEFT JOIN item_tags IT ON ID.item_ID = IT.item_id;

这将返回两个连接在一起的表格。

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

WHERE ID.folder_ID = '00001';