一个简单的sql问题(50分)

  • 主题发起人 主题发起人 s1520
  • 开始时间 开始时间
S

s1520

Unregistered / Unconfirmed
GUEST, unregistred user!
现有两表
户主表:
姓名 身份证号,配偶身份证号
配偶表:
姓名 配偶身份证号
在delphi中用一个adoquery1实现了根据户主的姓名查出了多条记录
如下:
with adoquery1 do
begin
close;
sql.clear;
sql.add('select * from 户主表 where 姓名 ='''+trim(edit1.text)+'''');
open;
end;
现我要用一个adoquery2 查询出 配偶表.配偶身份证号=adoquery1中的配偶身份证号
我知道要用一个循环,但我不知道delphi中如何写。
 
不用循环吧?
Select 配偶表.配偶身份证
from 户主表,配偶表
where 户主表.配偶身份证=配偶表.配偶身份证
 
Select 配偶表*
from 户主表,配偶表
where 户主表.配偶身份证=配偶表.配偶身份证 and 户主表.姓名=Edit1的内容
 
with adoquery2 do
begin
close;
Datasource:=adoquery1;//
sql.clear;
sql.add('select * from ...');
open;


end;
 
yzhshi,你讲的方法我也实现了,但是我不想这样写,因为我在adoquery1 中查询的条件有多个。谢谢你了,帮我在想想
 
同样是使用SQL语句呀。
其实访问数据库最好的办法就是SQL!
where 条件1=... and 条件2=...
完全能够满足。
 
我用了一个
with adoquery2 do
begin
close;
sql.clear;
sql.add('select * from 配偶表 where 配偶表.身份证号='''+trim(adoquery1.fieldbyname('配偶身份证号').asstring+'''');
open;
end;
查出的结果只要一条记录;
 
:yzhshi
户主表中的记录有40 条,而我的查询条件也不下10 个
按你的方法,我岂不是要写很多重复的语句。
 
组合SQL语句
动态拼写查询条件,实际的SQL就是一个。
Select ... From Where...
你动态拼写Where部分,为什么要写多个SQL语句呢?
 
多人接受答案了。
 
后退
顶部