首先,我是sql的新手。
现在,我正在为我的Android应用程序构建一个带有sqlite的标记系统,该应用程序使用3个表(项目,标签,tagmap)基于找到的这个“toxi”解决方案here,但我不确定机制如何工作,我如何从这个具有特定标签的itemsTable中选择所有项目。
itemsTable
的itemid
2
3
4
tagsTable
tagid标签
2“红宝石”
3“java”
7“c”
tagmap
itemid tagid
2 3
3 7
2 2
4 7
我正在尝试以下方面:
SELECT* FROM itemsTable INNER JOIN tagmap ON tagmap.itemid= itemsTable.itemid AND tagmap.tagid=tagsTable.tagid WHERE tagsTable.tagid= desiredid
但这似乎是错误的。
BTW:所有itemid和tagsid都是自动递增的主键
欢迎任何答案或替代创建标记系统(其中一个项目可以包含多个标记)。
答案 0 :(得分:1)
您的查询错误。你没有包含" tagsTable"在你的加入。试试这个:
SELECT* FROM itemsTable INNER JOIN tagmap ON tagmap.itemid= itemsTab
INNER JOIN tagsTable ON tagmap.tagid=tagsTable.tagid WHERE tagsTable.tagid= desiredID