SQLite多表查询关键字

iboss 2014-08-04 04:15:13
有二个表(表A,表B),字段结构一模一样,假设字段有:
Name 文本,主键
Age 数字

二个表中的Name也都是不同的,也就是二个表的Name对对方来说每个值也是唯一的。
现在要从这二个表中找到比如名为“张三”的人的全部信息,它可能在表A中,也可能在表B中,这个查询语句要如何写?
另外,更新时,比如要将“张三”(同样的不知道它具体在哪个表时)的age改成100,语句又应该如何写?

谢谢。
...全文
601 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangnaisheng 2014-08-04
  • 打赏
  • 举报
回复
引用 9 楼 iboss 的回复:
[quote=引用 8 楼 ACMAIN_CHM 的回复:] select * from 表A where Name='张三' union all select * from 表B where Name='张三'
不好意思,只能追加75分了,谢谢你的回答:http://bbs.csdn.net/topics/390850492[/quote] 我回答错了,你还不如不给我分。。汗
iboss 2014-08-04
  • 打赏
  • 举报
回复
引用 8 楼 ACMAIN_CHM 的回复:
select * from 表A where Name='张三' union all select * from 表B where Name='张三'
不好意思,只能追加75分了,谢谢你的回答:http://bbs.csdn.net/topics/390850492
ACMAIN_CHM 2014-08-04
  • 打赏
  • 举报
回复
select * from 表A where Name='张三' union all select * from 表B where Name='张三'
wangnaisheng 2014-08-04
  • 打赏
  • 举报
回复
实在不行,你可以这样

select Name ,Age FROM (
select Name ,Age FROM a 
UNION ALL 
select Name ,Age FROM b 
) AS total 
WHERE Name like '%张三%'
你的两个表的字段都一样,这样联合一下,应该是可以的
iboss 2014-08-04
  • 打赏
  • 举报
回复
引用 5 楼 wangnaisheng 的回复:
[quote=引用 4 楼 iboss 的回复:] 我说一下我的具体要求: 原来我有一个表(表xxx),结构是:Name(文本,主键),Age(数值,一般字段), 只有这个表时要查询张三,只要:select * from xxx where Name="张三" 然后这个表因为数据越来越多,我打算把这个表分拆成二个表,表a和表b。 现在我要查询张三这个人的信息,我该怎么查(只用一次查询)
那你应该弄一个关联的外键啊,你这样两个表这么关联,我写给你的也只是让你借鉴一下,通过关联后,可以使用 OR 关键字去匹配两个表。[/quote] 关键是我的那二个表中的数据根本就是无关联的,反而实际是一整体的,而且Name字段二个表中的数据都不能相同,你说我这个得怎么关联?
wangnaisheng 2014-08-04
  • 打赏
  • 举报
回复
引用 4 楼 iboss 的回复:
我说一下我的具体要求: 原来我有一个表(表xxx),结构是:Name(文本,主键),Age(数值,一般字段), 只有这个表时要查询张三,只要:select * from xxx where Name="张三" 然后这个表因为数据越来越多,我打算把这个表分拆成二个表,表a和表b。 现在我要查询张三这个人的信息,我该怎么查(只用一次查询)
那你应该弄一个关联的外键啊,你这样两个表这么关联,我写给你的也只是让你借鉴一下,通过关联后,可以使用 OR 关键字去匹配两个表。
iboss 2014-08-04
  • 打赏
  • 举报
回复
我说一下我的具体要求: 原来我有一个表(表xxx),结构是:Name(文本,主键),Age(数值,一般字段), 只有这个表时要查询张三,只要:select * from xxx where Name="张三" 然后这个表因为数据越来越多,我打算把这个表分拆成二个表,表a和表b。 现在我要查询张三这个人的信息,我该怎么查(只用一次查询)
iboss 2014-08-04
  • 打赏
  • 举报
回复
引用 1 楼 wangnaisheng 的回复:
查询

select a.Name ,a.Age
from a,b 
where a.Name = b.Name and a.Name like '%张三%'  or  b.Name like '%张三%' 
不对,你限定了“a.Name = b.Name",我说过,二个表中的Name都没有重复的。即使删除这个条件,结果也不行。这些我都测试过了。我现在怀疑我要的这个结果能不能达到。
wangnaisheng 2014-08-04
  • 打赏
  • 举报
回复
更新

IF NOT EXISTS(SELECT * FROM a WHERE a.NAME='张三')
BEGIN
   --UPDATE b  --更新语句自己写
END
ELSE
   --UPDATE a   --更新语句自己写
END
wangnaisheng 2014-08-04
  • 打赏
  • 举报
回复
查询

select a.Name ,a.Age
from a,b 
where a.Name = b.Name and a.Name like '%张三%'  or  b.Name like '%张三%' 

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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