比如我有三张表 tableA, tableB, tableC,表A里面的BUID,CUID字段分别为表B,C的外键
(由于不能截图,大家包涵)
tableA如下:
--------------------------
| ID | NAME | BUID | CUID|
--------------------------
| 1 | HHH | 2 | 1 |
--------------------------
tableB如下:
---------------
| ID | NAME |
-------------
| 2 | BB |
---------------
tableC如下:
---------------
| ID | NAME |
-------------
| 1 | CC |
---------------
我想得到如下的结果:
-----------------------------
| ID | NAME | BNAME | CNAME |
-----------------------------
| 1 | HHH | BB | CC |
-----------------------------
如果tableA的CUID字段在tableC中没有对应的结果如下显示
-----------------------------
| ID | NAME | BNAME | CNAME |
-----------------------------
| 1 | HHH | BB | NULL |
-----------------------------
如果tableA的BUID字段在tableB中没有对应的结果如下显示
-----------------------------
| ID | NAME | BNAME | CNAME |
-----------------------------
| 1 | HHH | NULL | CC |
-----------------------------
请问怎么写sql语句,不想分多次执行,希望一条sql语句得到我想要的结果。(数据库用的firebird,其他也行。)sql firebird
(由于不能截图,大家包涵)
tableA如下:
--------------------------
| ID | NAME | BUID | CUID|
--------------------------
| 1 | HHH | 2 | 1 |
--------------------------
tableB如下:
---------------
| ID | NAME |
-------------
| 2 | BB |
---------------
tableC如下:
---------------
| ID | NAME |
-------------
| 1 | CC |
---------------
我想得到如下的结果:
-----------------------------
| ID | NAME | BNAME | CNAME |
-----------------------------
| 1 | HHH | BB | CC |
-----------------------------
如果tableA的CUID字段在tableC中没有对应的结果如下显示
-----------------------------
| ID | NAME | BNAME | CNAME |
-----------------------------
| 1 | HHH | BB | NULL |
-----------------------------
如果tableA的BUID字段在tableB中没有对应的结果如下显示
-----------------------------
| ID | NAME | BNAME | CNAME |
-----------------------------
| 1 | HHH | NULL | CC |
-----------------------------
请问怎么写sql语句,不想分多次执行,希望一条sql语句得到我想要的结果。(数据库用的firebird,其他也行。)sql firebird
解决方案 »
- 小F-执行存储过程的问题
- sql 2005的服务器角色
- 如何在程序里,取得Transact-SQL内的变量
- 我电脑上安装sql2000现在再安装sql2005一切顺利,现在在VS2005上生成个数据库项目时,配到sql2005生成的数据库时报错。
- 急急!!!! sql 2000(sp3)在win2000 server(sp4)安装失败,16位windows子系统....?
- 求助,,急
- 请高手指教SQL2005附加数据库失败
- 两个字段(起始时间和结束时间)如何统计访问的高峰时段??
- 请问informix高手,怎么插入表里timestamp数据类型
- 大家评估一下这个存储过程够不够强壮,需要吃哪类大力丸才能更可靠一点?谢谢!!!
- 消息 156,级别 15,状态 1,第 1 行
- 请教以下一段MySQL-SQL怎么转成T-SQL?
SELECT a.id,a.name,b.NAME,c.name
FROM tablea a LEFT JOIN tableb b ON a.buid=b.ID
LEFT JOIN tablec c ON a.cuid=c.id
FROM tableA a
LEFT JOIN tableB b ON a.buid=b.ID
LEFT JOIN tableC c ON a.cuid=c.id或者SELECT a.id,a.name
,BNAME=(select top 1 name from tableB b where a.buid=b.ID)
,CNAME=(select top 1 name from tableC c where a.cuid=c.ID)
FROM tablea a