SQLite 跨库查询

wondergdf 2012-07-18 03:02:17
自己在开发一个小的应用,采用的是SQLite3 数据库,目前遇到的问题是 :有两个库,A.db ,B.db,分别有表 tableA 和

tableB,如何写 SQL 语句来实现跨库查询,将tableA和tableB中符合条件的数据整合一张表?
...全文
932 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
借光灬菜鸟 2015-04-01
  • 打赏
  • 举报
回复
附加表的数据可以在连接的数据库中进行修改不
ACMAIN_CHM 2012-07-18
  • 打赏
  • 举报
回复
连接sms.db 然后 附加addressbook.db数据库,
ATTACH DATABASE addressbook.db as addr;

查询语句。

select message.address,message.text,addr.ABPerson.name
from message ,addr.ABPerson, addr.ABMultiValue
where message.address=addr.ABMultiValue.value
and addr.ABMultiValue.record_id=addr.ABPerson.RowID
wondergdf 2012-07-18
  • 打赏
  • 举报
回复
不要沉啊,我顶!
wondergdf 2012-07-18
  • 打赏
  • 举报
回复
好吧,大致意思我懂了,但发现在我这个应用场景,这个SQl语句还是有点难写,SQL基础不够,我来描述下具体问题:

现在有两个库:sms.db(短信库)有一个表 message (address(电话号码),text(信息内容))

addressbook.db(联系人库) 有两个表:

ABPerson(RowID(int 类型标识),name(姓名))

ABMultiValue(record_id(int 类型标识),value(电话号码))

注:1:record_id 决定 value
2:ABPerson.RowID 和 ABMultiValue.record_id 是相同的数据


现在的问题是,如果我只查询 sms.db(短信库)的 message 表,只能查到 短信的电话号码和内容 但不知道这个电话号码所对应的联系人的姓名,所以我要链接addressbook.db(联系人库),将号码所对应的联系人姓名也添加到短信的搜索结果中去,请教这个SQL语句怎么写
ACMAIN_CHM 2012-07-18
  • 打赏
  • 举报
回复
[Quote]之前学过点皮毛,aa 为B.db 的别名我知道,但SELECT语句中“tableA”后面跟的那个“A”是指什么?A.db?[/Quote]别名

WWWWA 2012-07-18
  • 打赏
  • 举报
回复
假设连接A数据库
A为tableA的别名
wondergdf 2012-07-18
  • 打赏
  • 举报
回复
之前学过点皮毛,aa 为B.db 的别名我知道,但SELECT语句中“tableA”后面跟的那个“A”是指什么?A.db?

WWWWA 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

SELECT * FROM tableA A INNER JOIN AA.tableB B ON A.ID=B.ID 什么意思?
[/Quote]
不会不懂SQL语句吧?
aa为数据库别名
AA.tableB:B中的tableB
wondergdf 2012-07-18
  • 打赏
  • 举报
回复
SELECT * FROM tableA A INNER JOIN AA.tableB B ON A.ID=B.ID 什么意思?
WWWWA 2012-07-18
  • 打赏
  • 举报
回复
附加数据库后,直接查询
ATTACH [DATABASE] database-filename AS database-name

假设连接A,附加B
ATTACH DATABASE b as aa

SELECT * FROM tableA A INNER JOIN AA.tableB B ON A.ID=B.ID

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧