select问题。

javaname6 2007-12-28 12:12:14
表A:里有cid,aname 两个字段.
表B: 里有jobid,cid,jobname 三个字段。 cid可能重复多个。

现在我想这样取:取表a里5最后5条记录,如果这5条记录在b里有对应的信息就把对应的jobname信息显示出来,没有就显示jobname为空。如果在b里有多个对应的记录,那么就取最后一条和他对应的。


这个是一个职位发布的,就是显示5条最新注册的企业及发布的职位,如果没有发布职位,光显示公司名称就行了。
...全文
246 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiule 2007-12-29
  • 打赏
  • 举报
回复
select a.cid,jobid = min(jobid),jobname = isnull(b.jobname,'')
from (select top 5 cid from a order by cid desc)a left join b on a.cid = b.cid
group by a.cid
gracexu 2007-12-29
  • 打赏
  • 举报
回复
CXMCXM好是好,但是假设结果里要增加字段jobid,读上去就。。。
pt1314917 2007-12-28
  • 打赏
  • 举报
回复

表A:里有cid,aname 两个字段.
表B: 里有jobid,cid,jobname 三个字段。 cid可能重复多个。

现在我想这样取:取表a里5最后5条记录,如果这5条记录在b里有对应的信息就把对应的jobname信息显示出来,没有就显示jobname为空。如果在b里有多个对应的记录,那么就取最后一条和他对应的。
------------------------------------------------------------
select isnull(jobname,'') from b k1,
(select top 5 cid from a order by cid desc)a
where not exists(select 1 from b where cid=k1.cid and jobid>k1.jobid) and k1.cid=a.cid
dobear_0922 2007-12-28
  • 打赏
  • 举报
回复
select T.cid,jobid = min(jobid),jobname = isnull(b.jobname,'')
from (select top 5 cid from a order by cid desc) T
left join b on T.cid = b.cid
group by T.cid
simonhehe 2007-12-28
  • 打赏
  • 举报
回复

select a.cid,jobid = min(jobid),jobname = isnull(b.jobname,'')
from (select top 5 cid from a order by cid desc)a left join b on a.cid = b.cid
group by a.cid

playwarcraft 2007-12-28
  • 打赏
  • 举报
回复
select T1.cid,T1.aname,T2.jobid,T2.jobname
from
(select top 5 cid,aname from A order by cid desc) T1
left join
(select X.* from B X
inner join
(select cid,max(jobid) as jobid from B group by cid) Y
on X.jobid=Y.jobid) T2
on T1.cid=T2.cid
cxmcxm 2007-12-28
  • 打赏
  • 举报
回复
select top 5 cid,aname,jobname=(select top 1 jobname from B where cid=a.cid order by jobid desc) from a
order by cid desc
-狙击手- 2007-12-28
  • 打赏
  • 举报
回复
表A:里有cid,aname   两个字段. 
表B: 里有jobid,cid,jobname 三个字段。 cid可能重复多个。


select a.*,isnull(b.jobname,'') as jobname
from (select top 5 * from tablea order by cid desc) a
left join (select * from tableb bb where not exists(select 1 from tableb where bb.cid = cid and jobid > bb.jobid)) b
on a.cid = b.cid
victorcai2006 2007-12-28
  • 打赏
  • 举报
回复
牛X的老龟~~~~
貌似没有老龟解决不了的问题
gracexu 2007-12-28
  • 打赏
  • 举报
回复
老乌龟很喜欢用子查询啊,我喜欢你的写法。
dawugui 2007-12-28
  • 打赏
  • 举报
回复
表A:里有cid,aname 两个字段.
表B: 里有jobid,cid,jobname 三个字段。 cid可能重复多个。

现在我想这样取:取表a里5最后5条记录,如果这5条记录在b里有对应的信息就把对应的jobname信息显示出来,没有就显示jobname为空。如果在b里有多个对应的记录,那么就取最后一条和他对应的。


这个是一个职位发布的,就是显示5条最新注册的企业及发布的职位,如果没有发布职位,光显示公司名称就行了。


--假设cid越大表示越后面.
--假设jobid越大表示越后面
--上面看漏了条件,B有多条.
select m.* , isnull(n.jobname,'') jobname from
(select top 5 * from A order by cid desc) m
left join
(select t.* from B t where jobid = (select max(jobid) from B where cid = t.cid)) n
on m.cid = n.cid
dawugui 2007-12-28
  • 打赏
  • 举报
回复
表A:里有cid,aname 两个字段.
表B: 里有jobid,cid,jobname 三个字段。 cid可能重复多个。

现在我想这样取:取表a里5最后5条记录,如果这5条记录在b里有对应的信息就把对应的jobname信息显示出来,没有就显示jobname为空。如果在b里有多个对应的记录,那么就取最后一条和他对应的。


这个是一个职位发布的,就是显示5条最新注册的企业及发布的职位,如果没有发布职位,光显示公司名称就行了。

--假设cid越大表示越后面.

select m.* , isnull(b.jobname,'') jobname from
(select top 5 * from A order by cid desc) m
left join B on m.cid = b.cid
gracexu 2007-12-28
  • 打赏
  • 举报
回复
一楼的写法是对的,我也提供一种写法,差别只是谁先和谁联接的问题。

select a.cid, a.aname,b.jobid, b.jobname
from a inner join
(select top 5 a.cid, max(b.jobid) as jobid
from a left join b on a.cid=b.cid group by a.cid order by a.cid desc ) as T
on a.cid=t.cid
left join b on b.jobid=t.jobid
tianhama 2007-12-28
  • 打赏
  • 举报
回复
create table A (cid int identity(1,1),aname varchar(10))

insert into A select 'aa'
union all select 'bb'
union all select 'cc'
union all select 'dd'
union all select 'ee'
union all select 'ff'
union all select 'gg'
union all select 'hh'

create table B (jobid int identity(1,1),cid int,jobname varchar(10))

insert into B select 1,'a'
union all select 2,'a'
union all select 3,'a'
union all select 4,'a'
union all select 5,'a'
union all select 6,'a'
union all select 7,'a'
union all select 8,'a'
union all select 8,'b'

select a.cid as 企业编号,a.aname as 企业名称,b.jobid as 职位编号,b.jobname as 职位名称 from A a left join B b
on a.cid = b.cid
where a.cid in (select top 5 cid from A order by cid desc)
and
b.jobid in (select max(jobid) from B group by cid )

结果集如下:
企业编号 企业名称 职位编号 职位名称
4 dd 4 a
5 ee 5 a
6 ff 6 a
7 gg 7 a
8 hh 9 b
内容概要:本报告系统研究了开源AI代理生态系统OpenClaw的发展现状、技术架构与社会影响,阐述其从个人实验项目演进为具备“数字员工”能力的自治系统过程。OpenClaw以本地优先、隐私至上为核心理念,构建了集持久化记忆、多模态交互、主动执行与自我进化于一体的AI代理框架,实现从“对话助手”到“自主行动者”的范式跃迁。报告深入剖析其四层架构(大脑、交互、记忆、执行)、技能经济模型及安全风控机制,并对比国内LobsterAI、Kimi Claw、MiniMax等类似平台的差异化路径。通过真实案例揭示其在一人公司、内容创作、跨境电商等场景下的高毛利变现潜力,提出“正向Token流”驱动的可持续经济模型。最后展望未来人机共生与隔离两种演进路径,预测2030年将形成具备经济主权的硅基代理社会。; 适合人群:关注AI代理、自动化工具、人机协同的科研人员、技术研发者、创业者及企业数字化管理者;具备一定技术理解力并对AI生产力变革感兴趣的个人或团队。; 使用场景及目标:①理解OpenClaw如何重塑个人与组织的生产力范式;②掌握AI代理系统的架构设计、安全治理与商业化路径;③探索一人公司如何借助Agent实现低成本规模化运营;④预判未来AI从“消耗”走向“增殖”的技术与经济社会演变趋势。; 阅读建议:此报告融合技术、经济与社会视角,建议结合实际应用场景进行批判性阅读,重点关注其提出的“自我进化”“技能原子”“数字免疫系统”等创新概念,并警惕其中关于安全与伦理的风险警示,在实践中平衡创新与可控性。
已经博主授权,源码转载自 https://pan.quark.cn/s/46fec8a692f3 在Halcon机器视觉系统中,对图像及区域特征进行操作是一项基本功能。本文重点阐述如何从Image图像内的Region区域中提取各类特征参数,这对于图像解析、识别与分类具有核心意义。以下列举部分关键函数及其具体用途的详细说明:1. **area_center_gray**: 此函数旨在计算Region区域的面积(Area)与质心坐标(Row, Column)。面积定义为区域内像素数量的总和,而质心则是区域内像素位置的平均位置,这些信息有助于明确区域的大小与位置特征。2. **cooc_feature_image**: 该函数通过构建共生矩阵并提取灰度特征值,包括Energy(能量)、Correlation(相关性)、Homogeneity(均一性)和Contrast(对比度)。这些特征值能够反映图像像素灰度值的分布状态,对于纹理分析具有显著价值。3. **cooc_feature_matrix**: 此函数基于共生矩阵计算出前述的灰度特征值,可应用于更深入的纹理分析工作。4. **elliptic_axis_gray**: 该函数用于测定Region的主轴长度(Ra, Rb)和旋转角度(Phi),这对于图像中椭圆形或圆形物体的识别与测量极为关键。5. **entropy_gray**: 此函数旨在计算区域的熵(Entropy)和各向异性(Anisotropy)。熵作为衡量区域灰度分布不确定性的指标,而各向异性则表征区域灰度分布的对称程度。6. **estimate_noise**: 通过该函数可从单一图像中评估噪声水平(Sigma),提供foerstner、immerkaer...

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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