【问题标题】:Building a SQL "toxi" tagging system, how to select items with a specific tag?构建 SQL“毒”标签系统,如何选择带有特定标签的项目?
【发布时间】:2015-04-26 22:38:17
【问题描述】:

首先,我是 sql 新手。

现在,我正在为我的 Android 应用程序构建一个带有 sqlite 的标记系统,该应用程序使用 3 个表(项目、标签、标签映射),基于找到的这个“毒药”解决方案 here,但我不确定如何机械工作,我将如何从该 itemsTable 中选择具有特定标签的所有项目。

itemsTable

项目中

2

3

4

tagsTable

标签标签

2“红宝石”

3“java”

7 "c"

标签映射

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

但这似乎是错误的。

顺便说一句:所有 itemid 和 tagsid 都是自动递增的主键

欢迎任何答案或创建标签系统(其中一个项目可以有多个标签)的替代方法。

【问题讨论】:

  • 您的查询看起来不错。

标签: android sql sqlite


【解决方案1】:

您的查询是错误的。您没有在联接中包含“tagsTable”。试试这个:

SELECT* FROM itemsTable INNER JOIN tagmap ON tagmap.itemid= itemsTab 
INNER JOIN tagsTable ON tagmap.tagid=tagsTable.tagid WHERE tagsTable.tagid= desiredID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多