【问题标题】:SQLite select data from multiple tablesSQLite 从多个表中选择数据
【发布时间】:2016-06-28 10:19:14
【问题描述】:

我需要从多个表中获取数据,但无法对此进行查询。在这方面的任何帮助将不胜感激。已经发布了一些关于如何从多个表中获取数据的问题,但不知何故我无法抓住这种查询背后的概念。因此,我发布问题以询问是否有人可以使用以下详细信息为我构建查询:

表格:

CREATE TABLE users(id INTEGER PRIMARY KEY,user_name TEXT)
CREATE TABLE category(id INTEGER PRIMARY KEY,name TEXT,user_id INTEGER)
CREATE TABLE item(id INTEGER PRIMARY KEY,name TEXT,category_id INTEGER)
CREATE TABLE Used(id INTEGER PRIMARY KEY,frequency REAL,item_id INTEGER)

一个用户可能有多个类别,每个类别可能有多个项目,每个项目可能有多个使用频率。

我要选择以下内容:

  • 用户的所有类别
  • 这些类别的所有项目
  • 这些项目的所有频率

谢谢。

【问题讨论】:

  • 感谢 sagi 编辑我的问题。

标签: android sql database sqlite


【解决方案1】:

所以你想要这样的东西:

SELECT u.user_name,c.name,i.name,used.frequency
FROM users u
LEFT OUTER JOIN category c 
 ON(u.id = c.user_id)
LEFT OUTER JOIN item i
 ON(i.category_id = c.id)
INNER JOIN Used
 ON(i.id = used.item_id)
WHERE u.user_id = YOUR_USER_HERE

【讨论】:

  • 谢谢萨吉。查询工作正常,但有一个例外。在 Used 表中有某些项目没有相应的频率。我将查询排除在外,但此查询返回一行,其中 used.frequency 为空单元格。有解决这个问题的线索吗?
猜你喜欢
  • 2021-11-08
  • 1970-01-01
  • 2015-11-04
  • 2014-01-05
  • 2021-02-06
  • 2020-07-04
  • 2012-05-09
  • 1970-01-01
相关资源
最近更新 更多