使用连接

时间:2017-07-24 01:32:16

标签: c# sql-server database

我目前正在.NET中开发一个实体框架应用程序,我正在努力处理一个与T-SQL有关的查询。

首先,我想从数据库中向您展示我的模型,并了解该模型在规范化方面是否正确。我想提一下,我不是SQL Server数据库设计方面的专家,对于有经验的人来说这可能很容易,但对我来说却不是。

我目前正在开发的应用程序的目标是使用INS和OUTS实现库存控制系统,以便能够知道该设备在哪些事件中被使用以及何时进出精确日期。< / p>

对于这个例子,我只从我的数据库设计中获取了6个表。

我有3个基表和3个辅助表来关联基表。

EQUIPO

Id | int | not null | primary key
Marca | nvarchar(max) | not null
Modelo | nvarchar(max) | not null

事件摘要

Id | int | not null | primary key
Sede | nvarchar(max) | not null

萨利达

Id | int | not null | primary key
Fecha | datetime2(0) | not null

接下来的三个表是与基表相关的表。

EventoEquipo

EventoId | int | not null | primary key (References Evento.Id)
EquipoId | int | not null | primary key (References Equipo.Id)

SalidaEvento

SalidaId | int | not null | primary key (References Salida.Id)
EventoId | int | not null | (References Evento.Id)

SalidaEquipo

SalidaId | int | not null | primary key (References Salida.Id)
EquipoId | int | not null | (References Equipo.Id)

我需要查找的SQL查询是一个查询,它允许我从特定设备获取具有其输出日期的事件,如果没有注册,那么我应该在输出日期获得空。

我能够开发这个部分查询:

DECLARE @EquipoId int
SET @EquipoId = 4

SELECT ev.Nombre 
FROM Evento ev 
INNER JOIN EventoEquipo eve ON eve.EventoId = ev.Id
INNER JOIN Equipo eq ON eq.Id = eve.EquipoId
WHERE eq.Id = @EquipoId

此查询允许我获取使用设备的事件,但如果我继续使用相同的逻辑,我只会获得已注册的事件,即使在那里我也需要获取所有事件没有注册。

提前谢谢!

PS:很抱歉基本的桌面视觉效果,但我无法上传超过2张图片。

0 个答案:

没有答案