Вот запрос, который работает:Дублирование записей в результате запроса
SELECT T_ActionTicketLog.ActionTicketID
,T_ActionTicketLog.BarCode
,T_ActionTicketLog.UserID
,T_TicketStatus.Name
,T_OrderTicket.OrderID
FROM T_ActionTicketLog
INNER JOIN T_TicketStatus
ON T_ActionTicketLog.StatusID = T_TicketStatus.ID
LEFT OUTER JOIN T_OrderTicket
ON T_ActionTicketLog.TicketOrderID = T_OrderTicket.ID
where T_ActionTicketLog.ActionTicketID = 21780101
Есть 27 записей возвращается, что это нормально.
Но я хочу добавить еще одно поле для набора результатов таким образом:
SELECT T_ActionTicketLog.ActionTicketID
,T_ActionTicketLog.BarCode
,T_ActionTicketLog.UserID
,T_TicketStatus.Name
,T_OrderTicket.OrderID
,T_TicketPrint.TicketBarCode
FROM T_ActionTicketLog
INNER JOIN T_TicketStatus
ON T_ActionTicketLog.StatusID = T_TicketStatus.ID
LEFT OUTER JOIN T_OrderTicket
ON T_ActionTicketLog.TicketOrderID = T_OrderTicket.ID
LEFT OUTER JOIN T_TicketPrint
ON T_OrderTicket.ActionTicketID = T_TicketPrint.ActionTicketID
where T_ActionTicketLog.ActionTicketID = 21780101
Есть 165 записей возвращается, что неправильно.
Дополнительное левое внешнее соединение делает проблему.
Таблицы:
CREATE TABLE [T_ActionTicketLog](
[ID] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[ActionTicketID] [bigint] NULL,
[TicketOrderID] [bigint] NULL,
[StatusID] [tinyint] NULL,
[UserID] [int] NULL,
[SalerID] [int] NULL,
[FiscalID] [int] NULL,
[BarCode] [bigint] NULL,
[ReservDate] [datetime] NULL,
[Created] [datetime] NULL,
[Comments] [varchar](50) NULL,
CREATE TABLE [T_TicketStatus](
[ID] [tinyint] NOT NULL,
[Name] [varchar](50) NULL,
[Created] [datetime] NULL,
CREATE TABLE [T_TicketPrint](
[ID] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[CashierID] [int] NULL,
[BarCode] [bigint] NULL,
[ControlDigit] [tinyint] NULL,
[ActionTicketID] [bigint] NULL,
[Created] [datetime] NULL,
[CancelDate] [datetime] NULL,
[TicketBarCode] [varchar](250) NULL,
[OrderTicketID] [bigint] NULL,
[SetId] [bigint] NULL,
CREATE TABLE [T_OrderTicket](
[ID] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[OrderID] [int] NULL,
[ActionTicketID] [bigint] NULL,
[Status] [smallint] NULL,
[Created] [datetime] NULL,
[UserID] [int] NULL,
Как добавить дополнительное поле без дублирования записей?
Не могли бы вы предоставить данные о некоторых образцах? – Milen