我现在要关联两个数据表,我在数据库中有两个数据表
TableA表结构如下: TableB表结构如下:
字段名: 字段名:
id id
name name
SQL语句如下
select a.id,a.name,b.id from TableA a,TableB b where a.name='业务部' and a.id=b.id
问题如下:
如果TableA表中有10条记录,TableB表中没有记录的话,就算第一个条件a.name='业务部'满足的话,也没办法查找到任何记录,但是如果把and改成or的话同样一条记录在DBGrid表格里就会显示成三条,我想实现就算第二个条件没有被满足的话,同样也可以显示出满足第一个条件的记录,当两个条件都被满足的话就查找出满足两个条件的记录,不知这样的SQL语句应该怎么写,请高手指点!
union
(select b.id from tableB b ,tableA a where b.id=a.id)
第二个表里有几条数据呢?
有两条?那你的第一个表对应哪条数据?
是不是应该查询出在table2里存在的?
left join
TableB b
on a.id=b.id
where a.name='业务部'
我的数据库是DBISAM不支持子查询。
sql.add('select a.* from tableA a where a.name='業務部'');
sql.add('union');
sql.add('select b.id from tableB b ,tableA a where b.id=a.id')
TableA表结构如下: TableB表结构如下:
字段名: 字段名:
id id
name name
TableA表记录如下: TableB表记录如下:
id name id name
1 业务部 1 张三
2 办公室 3 李四
3 人事部 4 王五
我想求一SQL语句显示:
id name name
1 张三 业务部
3 李四 人事部
4 王五
WHERE 1=1