这样的查询sql怎么写?在线

我才是蝙蝠侠 2003-08-13 04:24:43
现有两张表
表A结构:ID,EQUID
表B结构:ID,NAME
表A的EQUID与表B的ID字段关联,但表A中的EQUID有时为空

现查询表A中的所有数据,并且如果表A中的EQUID不为空则显示出表B中相应记录的NAME值,如果表A中的EQUID为空,则不显示任何东西,但此条记录必须在返回的记录集中。

例如:
表A中现有的数据:
ID EQUID
1 null
2 1
3 4

表B中现有的数据:
ID NAME
1 数据1
2 数据2
3 数据3
4 数据4
5 数据5

经过查询后得到的结果如下:
A.ID B.NAME
1 null(这里要求仍为空)
2 数据1
3 数据4

请高手指点一下,谢谢了。
...全文
24 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT动力 2003-08-15
  • 打赏
  • 举报
回复
同意大力的意见.
szlycsdn 2003-08-15
  • 打赏
  • 举报
回复
不用怀疑了。huoyin(huoyin)兄的方法是比较好的。他使用了 "*=" ,注意,*和=号是连着的。大家可以到SQL帮助里去看看它的用法。在统计方面,有很多地方可能会用到这个功能。
pengdali 2003-08-14
  • 打赏
  • 举报
回复
SQLServer:

select id,(select name from 表b where id=表A.id) name from 表A
huoyin 2003-08-14
  • 打赏
  • 举报
回复
用这个语句
"SELECT a.id, b.name FROM aa,bb where a.EQUID *= b.id"
试一下
wandengfeng 2003-08-13
  • 打赏
  • 举报
回复
虽然是有那么一点点流氓的办法
但是如果是Result Oriented
也未尝不可,right?
wandengfeng 2003-08-13
  • 打赏
  • 举报
回复
这样
SELECT A.ID,B.NAME
FROM A INNER JOIN B ON A.EQUID = B.ID
UNION
SELECT A.ID,A.EQUID
FROM A
WHERE A.EQUID IS NULL

可以的,我调试过了。
yydyqy 2003-08-13
  • 打赏
  • 举报
回复
up
丁淇石头 2003-08-13
  • 打赏
  • 举报
回复
你还是到SQL SERVER版去问吧,哪儿高手甚多,你的这个问题在哪儿很短时间就可以解决。

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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