问一个t-sql语句

zcm123 2005-11-25 10:49:41
SELECT
[suminfo_Customer].[id] as [编号],
[suminfo_Customer].[title] as [公司名称],
[suminfo_Customer].[productionvalue] as [年产值],
[suminfo_users].[name] as [目前签保人],
[suminfo_Customer].[appearance] as [签约状态]
FROM
(((((
[suminfo_Customer]

INNER JOIN [suminfo_Province] ON [suminfo_Customer].[porvince_id]=[suminfo_Province].[id])
INNER JOIN [suminfo_City] ON [suminfo_Customer].[city_id]=[suminfo_City].[id])
INNER JOIN [suminfo_County] ON [suminfo_Customer].[county_id]=[suminfo_County].[id])
INNER JOIN [suminfo_Profession_bigclass] ON [suminfo_Customer].[profession_bigclass]=[suminfo_Profession_bigclass].[id])
INNER JOIN [suminfo_Profession_smallclass] ON [suminfo_Customer].[profession_smallclass]=[suminfo_Profession_smallclass].[id])
INNER JOIN [suminfo_users] ON [suminfo_Customer].[uid]=[suminfo_users].[id]

WHERE [suminfo_Customer].[id]<>1
order by [suminfo_Customer].[id]

上面的sql语句 大家看到了 语法上是无逻辑错误的
我问的是一个功能的实现;就是当[suminfo_Customer]存在一个记录,其记录的值在别的表中(如suminfo_users)不存在;

比如:
[suminfo_Customer].[uid]=0

[suminfo_users].[id]不存在0这个值
用上面的sql查询后这个[suminfo_Customer].[uid]=0的对应记录不显示

我希望用
如上形式查询后[suminfo_Customer]这个存在的记录仍旧显示,显示时该条记录无重复值;不知道如何实现-_-

例如
当:
[suminfo_Customer].[uid]=0

[suminfo_users].[id]不存在0这个值
照常显示这个记录而[suminfo_users].[name] as [目前签保人] 显示时是一个默认值如 “无用户”

现在添加一条数据到另外的表是不现实的;因此完全记录值的匹配是不可能的;现在使用的数据库中存在这些因素,所以查询时有些记录不显示;还有只能用一条sql语句来实现。各位大侠help me ~=~

...全文
104 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jedliu 2005-11-25
  • 打赏
  • 举报
回复
用left或者right join来做,如用left时,将[suminfo_Customer].[uid]放左边就可以
nethawkc 2005-11-25
  • 打赏
  • 举报
回复
像jjlook說的用left join﹐然後再加上case判斷﹐當suminfo_users.name為null時則顯示"無用戶"
elite2018 2005-11-25
  • 打赏
  • 举报
回复
add a judgement [suminfo_users].[id] is null
jjlook 2005-11-25
  • 打赏
  • 举报
回复
inner join 换成left join这样的话就可以把左表中的所有记录查出来了
vivianfdlpw 2005-11-25
  • 打赏
  • 举报
回复
SELECT
[suminfo_Customer].[id] as [编号],
[suminfo_Customer].[title] as [公司名称],
[suminfo_Customer].[productionvalue] as [年产值],
[suminfo_users].[name] as [目前签保人],
[suminfo_Customer].[appearance] as [签约状态]
FROM
(((((
[suminfo_Customer]

LEFT JOIN [suminfo_Province] ON [suminfo_Customer].[porvince_id]=[suminfo_Province].[id])
LEFT JOIN [suminfo_City] ON [suminfo_Customer].[city_id]=[suminfo_City].[id])
LEFT JOIN [suminfo_County] ON [suminfo_Customer].[county_id]=[suminfo_County].[id])
LEFT JOIN [suminfo_Profession_bigclass] ON [suminfo_Customer].[profession_bigclass]=[suminfo_Profession_bigclass].[id])
LEFT JOIN [suminfo_Profession_smallclass] ON [suminfo_Customer].[profession_smallclass]=[suminfo_Profession_smallclass].[id])
LEFT JOIN [suminfo_users] ON [suminfo_Customer].[uid]=[suminfo_users].[id]

WHERE [suminfo_Customer].[id]<>1
order by [suminfo_Customer].[id]
jxufewbt 2005-11-25
  • 打赏
  • 举报
回复
用left join
zcm123 2005-11-25
  • 打赏
  • 举报
回复
^_^ 谢谢各位

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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