DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: eyang11
今日帖子: 14
在线用户: 14
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 cyh9519 (智商65) ★☆☆☆☆ -
普通会员
2004/3/9 10:23:23
标题:
一个SQL的问题:从两张表中读取数据(第二个问题未解决) 浏览:1439
加入我的收藏
楼主: 两张表,其中一张数据为id和xm,另一张为id和xb
两张表id的内容相同
比如:table1:id  xm    table2:id  xb
            01  张三         01  男
            02  小红         02  女
能不能用SQL直接从这两张表中读取数据显示在dbgrid1中
要求显示的内容为:  id  xm    xb
                   01  张三  男
                   02  小红  女
请指教,谢谢!!!
----------------------------------------------
-
作者:
男 yangshuo (海豚) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 10:27:07
1楼: 可以.
用这个命令:
select table1.id,table1.xm,table2.xb
from table1
left join table2 on table2.id=table1.id
where ...........(如果有条件你自己加)
----------------------------------------------
delphi的忠实拥戴者
一起交流DELPHI
MSN: tech@delphisoft.com.cn
作者:
男 cyh9519 (智商65) ★☆☆☆☆ -
普通会员
2004/3/9 10:39:08
2楼: 如果table1和table2中的数据不完全相同那应该如何呢
比如:  table1: id  xm   table2: id  xb
               01  张三         01  男
               02  小红         03  女
要求显示:  id   xm    xb
           01   张三  男
           02   小红  未知
           03   未知  女
这样可以实现吗??
----------------------------------------------
-
作者:
男 hrj28 (hrj28) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 10:53:31
3楼: select * from table1
union
select table2.xb from table2
试试吧!我没SQL.
----------------------------------------------
-
作者:
男 minche (异杰) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 11:16:50
4楼:
select table1.id,isnull(table1.xm,'未知'),isnull(table2.xb,'未知')
from table1 a
left join table2 on table2.id=table1.id
----------------------------------------------
-和大家一起学习,一起进步!!!
作者:
男 cyh9519 (智商65) ★☆☆☆☆ -
普通会员
2004/3/9 11:29:05
5楼: To 4楼的朋友:
那个a是误写的吗??删不删都不好用
Capability not supported.
我把'未知'改为参数也不行
是不是哪里表达有错误??
----------------------------------------------
-
作者:
男 minche (异杰) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 11:40:24
6楼: 如下:
select a.id,isnull(a.xm,'未知'),isnull(b.xb,'未知')
( select * from table1) a
left join (select * from table2) b on a.id=b.id 

----------------------------------------------
-和大家一起学习,一起进步!!!
作者:
男 cyh9519 (智商65) ★☆☆☆☆ -
普通会员
2004/3/9 13:47:17
7楼: 楼上的兄弟
还是不好用啊
帮帮忙再想想办法
拜托拜托
----------------------------------------------
-
作者:
男 cyh9519 (智商65) ★☆☆☆☆ -
普通会员
2004/3/9 14:32:41
8楼: 顶一下
----------------------------------------------
-
作者:
男 chengyao (百炼成尧) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 15:16:48
9楼: select table1.id, 
       isnull(table1.xm,'未知'),
       isnull(table2.xb,'未知') 
   from table1  left join table2 on table1.id=table2.id;
----------------------------------------------
Function IThink(Boy,Girl : TPerson) : String;
begin
  if Boy.钱 < 10W then Girl.Say(''滚!'') else
  begin
     if Girl.Anser = ''我愿意'' then
     Result := ''结婚'' else
     Result := IntToStr(88);
  end;
风过不折→百炼成尧 QQ: 7315910
作者:
男 cyh9519 (智商65) ★☆☆☆☆ -
普通会员
2004/3/9 15:21:26
10楼: to 9楼:
还是不好用啊
----------------------------------------------
-
作者:
男 chengyao (百炼成尧) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 15:23:48
11楼: 不好用?
是得不到你的要求?还是怎么的呢?

----------------------------------------------
Function IThink(Boy,Girl : TPerson) : String;
begin
  if Boy.钱 < 10W then Girl.Say(''滚!'') else
  begin
     if Girl.Anser = ''我愿意'' then
     Result := ''结婚'' else
     Result := IntToStr(88);
  end;
风过不折→百炼成尧 QQ: 7315910
作者:
男 minche (异杰) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 15:52:33
12楼: 提的有点问题.
----------------------------------------------
-和大家一起学习,一起进步!!!
作者:
男 cyh9519 (智商65) ★☆☆☆☆ -
普通会员
2004/3/9 16:11:22
13楼: to 11楼:
我把语句写进Query1的SQL属性里
然后把Query1的Active改为True时提示错误:
Capability not supported.

to 12楼:
是我的问题提的有问题吗
我的要求是把两张表共用一个字段合并在一起
比如:  table1: id  xm   table2: id  xb
               01  张三         01  男
               02  小红         03  女
要求显示:  id   xm    xb
           01   张三  男
           02   小红  未知
           03   未知  女

----------------------------------------------
-
作者:
男 ddzhouqian (007) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 16:13:37
14楼: 提的是有些问题???
可不可以把两个表合成一张表?
----------------------------------------------
-按此在新窗口浏览图片
作者:
男 minche (异杰) ★☆☆☆☆ -
盒子活跃会员
2004/3/9 16:17:42
14楼: 要么你的数据库有问题.我在sql server 2000里面执行时没有问题.
----------------------------------------------
-和大家一起学习,一起进步!!!
作者:
男 cyh9519 (智商65) ★☆☆☆☆ -
普通会员
2004/3/9 16:33:27
15楼: 上面的几种语句我都试过了
都运行不起来
我是在delphi6里执行的
如果是数据库有问题,那就没办法了
我还是用循环做吧,慢就慢点
我就不为难各位大哥了
仍然感谢 yangshuo,hrj28,minche,chengyao
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行89.84375毫秒 RSS