从 table 中删除行,其中列来自另一个 table
delete rows from table where the columns are from another table
我的触发器有问题,因为我需要从我的 table 之一中删除行,但 id 需要从那个 table 左连接到刚插入的数据.
DELETE FROM TransactionTable where ItineraryReferenceNumber =
(select distinct i.ItineraryReferenceNumber from inserted i LEFT JOIN TransactionTable FS
ON i.ItineraryReferenceNumber = FS.ItineraryReferenceNumber)
我需要获取所有参考编号与其匹配的记录,这就是我选择它们的原因。
这是正确的,还是我做错了什么?
实际上,您只是从 inserted
table.
中的 TransactionTable 中删除了记录
DELETE FROM TransactionTable
WHERE ItineraryReferenceNumber IN (
SELECT ItineraryReferenceNumber FROM inserted
)
SELECT CustomerID FROM [Customers] where CUSTOMERID NOT IN (SELECT O.CUSTOMERID from Customers c, Orders O where O.CustomerID=c.CustomerID)
查看此示例代码,来自 this database。
这是同一个查询,就像您一样,这将是 return 未下订单的客户的 ID。
您可以使用 same ,您正在删除这样的 ItineraryReferenceNumber ,它符合另一个 table.
的某些条件
我的触发器有问题,因为我需要从我的 table 之一中删除行,但 id 需要从那个 table 左连接到刚插入的数据.
DELETE FROM TransactionTable where ItineraryReferenceNumber =
(select distinct i.ItineraryReferenceNumber from inserted i LEFT JOIN TransactionTable FS
ON i.ItineraryReferenceNumber = FS.ItineraryReferenceNumber)
我需要获取所有参考编号与其匹配的记录,这就是我选择它们的原因。
这是正确的,还是我做错了什么?
实际上,您只是从 inserted
table.
DELETE FROM TransactionTable
WHERE ItineraryReferenceNumber IN (
SELECT ItineraryReferenceNumber FROM inserted
)
SELECT CustomerID FROM [Customers] where CUSTOMERID NOT IN (SELECT O.CUSTOMERID from Customers c, Orders O where O.CustomerID=c.CustomerID)
查看此示例代码,来自 this database。 这是同一个查询,就像您一样,这将是 return 未下订单的客户的 ID。 您可以使用 same ,您正在删除这样的 ItineraryReferenceNumber ,它符合另一个 table.
的某些条件