SQL的查询JOIN

Sundery 2005-03-21 09:11:39
create table t1
(
[id] int identity(1,1) primary key,
Cargo char(1),
CargoNumber char(1),
InStockNumber int
)
insert into t1 values('A','B',10)
insert into t1 values('A','C',10)
insert into t1 values('A','D',10)
-------------------------------------------
create table t2
(
[id] int foreign key references t1([id]),
opDate datetime,
opNumber int
)
insert into t2 values(1,'2005-1-1',7)
insert into t2 values(2,'2005-1-1',3)
insert into t2 values(2,'2005-1-1',2)
insert into t2 values(2,'2005-1-1',4)


select a.cargo,a.cargonumber,a.instocknumber,b.opDate,b.opNumber
from t1 as a inner join t2 as b on (a.[id] = b.[id])


我希望的结果是
第3,第4行的A,C由于已经在显示过了,所以不要再显示出来
...全文
375 9 打赏 收藏 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sundery 2005-04-06
  • 打赏
  • 举报
回复
Thanks:)
天地客人 2005-03-22
  • 打赏
  • 举报
回复
UP
Sundery 2005-03-22
  • 打赏
  • 举报
回复
不好意思啊,其实我要的结果是这个样子的:

A B 10 2005-01-01 00:00:00.000 7
A C 10 2005-01-01 00:00:00.000 3
10 2005-01-01 00:00:00.000 2
10 2005-01-01 00:00:00.000 4
A D 10 NULL NULL
yangys 2005-03-22
  • 打赏
  • 举报
回复
^_^

不愧是邹建!
zjcxc 元老 2005-03-22
  • 打赏
  • 举报
回复
create table t1
(
[id] int identity(1,1) primary key,
Cargo char(1),
CargoNumber char(1),
InStockNumber int
)
insert into t1 values('A','B',10)
insert into t1 values('A','C',10)
insert into t1 values('A','D',10)
-------------------------------------------
create table t2
(
[id] int foreign key references t1([id]),
opDate datetime,
opNumber int
)
insert into t2 values(1,'2005-1-1',7)
insert into t2 values(2,'2005-1-1',3)
insert into t2 values(2,'2005-1-1',2)
insert into t2 values(2,'2005-1-1',4)


select cargo=case when b.opNumber is null or b.opNumber=(select top 1 opNumber from t2 where id=a.id)
then a.cargo else '' end
,cargonumber=case when b.opNumber is null or b.opNumber=(select top 1 opNumber from t2 where id=a.id)
then a.cargonumber else '' end
,a.instocknumber,b.opDate,b.opNumber
from t1 as a left join t2 as b on (a.[id] = b.[id])


go

drop table t2,t1

/*--结果

cargo cargonumber instocknumber opDate opNumber
----- ----------- ------------- ------------------------- ---------
A B 10 2005-01-01 00:00:00.000 7
A C 10 2005-01-01 00:00:00.000 3
10 2005-01-01 00:00:00.000 2
10 2005-01-01 00:00:00.000 4
A D 10 NULL NULL

(所影响的行数为 5 行)

--*/
zjcxc 元老 2005-03-21
  • 打赏
  • 举报
回复
需要t2表中有能与id配置,唯一确定一条记录的字段,上述处理中,使用了opNumber
zjcxc 元老 2005-03-21
  • 打赏
  • 举报
回复
create table t1
(
[id] int identity(1,1) primary key,
Cargo char(1),
CargoNumber char(1),
InStockNumber int
)
insert into t1 values('A','B',10)
insert into t1 values('A','C',10)
insert into t1 values('A','D',10)
-------------------------------------------
create table t2
(
[id] int foreign key references t1([id]),
opDate datetime,
opNumber int
)
insert into t2 values(1,'2005-1-1',7)
insert into t2 values(2,'2005-1-1',3)
insert into t2 values(2,'2005-1-1',2)
insert into t2 values(2,'2005-1-1',4)


select a.cargo,a.cargonumber,a.instocknumber,b.opDate,b.opNumber
from t1 as a inner join t2 as b on (a.[id] = b.[id])
and b.opNumber=(select top 1 opNumber from t2 where id=a.id)

go

drop table t2,t1

/*--结果

cargo cargonumber instocknumber opDate opNumber
----- ----------- ------------- ------------------------ ---------
A B 10 2005-01-01 00:00:00.000 7
A C 10 2005-01-01 00:00:00.000 3

(所影响的行数为 2 行)
--*/
xluzhong 2005-03-21
  • 打赏
  • 举报
回复
create table t1
(
[id] int identity(1,1) primary key,
Cargo char(1),
CargoNumber char(1),
InStockNumber int
)
insert into t1 values('A','B',10)
insert into t1 values('A','C',10)
insert into t1 values('A','D',10)
-------------------------------------------
create table t2
(
[id] int foreign key references t1([id]),
opDate datetime,
opNumber int
)
insert into t2 values(1,'2005-1-1',7)
insert into t2 values(2,'2005-1-1',3)
insert into t2 values(2,'2005-1-1',2)
insert into t2 values(2,'2005-1-1',4)

select
a.cargo,
a.cargonumber,
a.instocknumber,
b.opDate,
b.opNumber
from
t1 a
left join
(select * from t2 c where opnumber = (select top 1 opnumber from t2 where id=c.id order by newid())) b
on
(a.[id] = b.[id])

drop table t2
drop table t1
Sundery 2005-03-21
  • 打赏
  • 举报
回复
更正一点,语句应该是:
select a.cargo,a.cargonumber,a.instocknumber,b.opDate,b.opNumber
from t1 as a left join t2 as b on (a.[id] = b.[id])


由于第3,第4行的A,C由于已经在显示过了,所以不要再显示出来

内容概要:本文研究了采用非正交多址接入(NOMA)技术的节能多无人机多接入边缘计算系统,通过Matlab代码实现仿真与优化。该系统旨在提升多无人机环境下边缘计算的资源利用效率和能量效率,解决多用户接入冲突与计算任务卸载的能耗问题。文中深入探讨了NOMA技术在无人机通信中的应用机制,利用功率域复用支持多用户并发接入,并通过联合优化算法对无人机飞行轨迹、任务卸载决策及无线资源分配进行协同优化,以最小化系统总能耗的同时保障服务质量。研究内容涵盖系统模型构建、非凸优化问题的数学建模、高效求解算法的设计,以及详细的仿真结果分析,充分验证了NOMA技术在提升多无人机边缘计算系统性能方面的有效性与优越性。; 适合人群:具备通信、计算机或自动化等相关专业背景,熟悉Matlab编程,从事无人机通信、边缘计算或资源优化研究的研究生及科研人员。; 使用场景及目标:①为多无人机协同边缘计算系统的设计与能耗优化提供理论依据和技术参考;②通过提供的Matlab代码实现,便于研究人员复现核心算法、验证模型的有效性,并在此基础上进行二次开发与性能改进; 阅读建议:此资源以Matlab代码为核心载体,建议读者结合通信原理、优化理论与无人机网络知识,深入理解NOMA的接入机制、功率分配原理以及轨迹与资源的联合优化策略,并动手调试代码以掌握系统仿真的完整流程。

34,876

社区成员

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

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