DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
16 回答
1
试试这个查询:
DELETE WorkRecord2, Employee
FROM WorkRecord2
INNER JOIN Employee ON (tbl_name.EmployeeRun=tbl_name.EmployeeNo)
WHERE tbl_name.Company = '1'
AND tbl_name.Date = '2013-05-06';
21
试试这个,它可能会有所帮助
DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee
ON EmployeeRun=EmployeeNo
WHERE Company = '1'
AND Date = '2013-05-06';
109
试试这个:
DELETE FROM WorkRecord2
FROM Employee
Where EmployeeRun=EmployeeNo
And Company = '1'
AND Date = '2013-05-06'
25
它应该是:
DELETE zpost
FROM zpost
INNER JOIN zcomment ON (zpost.zpostid = zcomment.zpostid)
WHERE zcomment.icomment = "first"
2
这是我目前用于删除甚至更新的内容:
DELETE FROM w
FROM WorkRecord2 w,
Employee e
WHERE w.EmployeeRun = e.EmployeeNo
AND w.Company = '1'
AND w.Date = '2013-05-06'
4
您没有为 Company 和 Date 指定表,您可能想要修复它 .
使用 MERGE 的标准SQL:
MERGE WorkRecord2 T
USING Employee S
ON T.EmployeeRun = S.EmployeeNo
AND Company = '1'
AND Date = '2013-05-06'
WHEN MATCHED THEN DELETE;
@Devart的答案也是标准SQL虽然不完整,但看起来应该更像这样:
DELETE
FROM WorkRecord2
WHERE EXISTS ( SELECT *
FROM Employee S
WHERE S.EmployeeNo = WorkRecord2.EmployeeRun
AND Company = '1'
AND Date = '2013-05-06' );
DELETE FROM dbo.WorkRecord2
WHERE EmployeeRun IN (
SELECT e.EmployeeNo
FROM dbo.Employee e
WHERE ...
)
或试试这个 -
DELETE FROM dbo.WorkRecord2
WHERE EXISTS(
SELECT 1
FROM dbo.Employee e
WHERE EmployeeRun = e.EmployeeNo
AND ....
)
11
这是一个简单的查询,一次从两个表中删除记录 .
DELETE table1.* ,
table2.*
FROM table1
INNER JOIN table2 ON table1.id= table2.id where table1.id ='given_id'
8
您需要指定要删除的表,这是一个带别名的版本:
DELETE w
FROM WorkRecord2 w
INNER JOIN Employee e
ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
2
只需在 DELETE 和 FROM 之间添加要删除记录的表的名称,因为我们必须指定要删除的表 . 同时删除 ORDER BY 子句,因为删除记录时无需订购 .
所以你的最终查询应该是这样的:
DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee
ON EmployeeRun=EmployeeNo
WHERE Company = '1'
AND Date = '2013-05-06';
3
DELETE a FROM WorkRecord2 a
INNER JOIN Employee b
ON a.EmployeeRun = b.EmployeeNo
Where a.Company = '1'
AND a.Date = '2013-05-06'
1704
这是我的SQL Server版本
DECLARE @ProfileId table(Id bigint)
DELETE FROM AspNetUsers
OUTPUT deleted.ProfileId INTO @ProfileId
WHERE Email = @email
DELETE FROM UserProfiles
WHERE Id = (Select Id FROM @ProfileId)
2
在SQL Server Management Studio中,我可以轻松创建SELECT查询 .
SELECT Contact.Naam_Contactpersoon, Bedrijf.BedrijfsNaam, Bedrijf.Adres, Bedrijf.Postcode
FROM Contact
INNER JOIN Bedrijf ON Bedrijf.IDBedrijf = Contact.IDbedrijf
我可以执行它,并显示所有联系人 .
现在将SELECT更改为DELETE:
DELETE Contact
FROM Contact
INNER JOIN Bedrijf ON Bedrijf.IDBedrijf = Contact.IDbedrijf
您将在SELECT语句中看到的所有记录都将被删除 .
您甚至可以使用相同的过程创建更难的内部联接,例如:
DELETE FROM Contact
INNER JOIN Bedrijf ON Bedrijf.IDBedrijf = Contact.IDbedrijf
INNER JOIN LoginBedrijf ON Bedrijf.IDLoginBedrijf = LoginBedrijf.IDLoginBedrijf
0
使用 CTE 的另一种方式 .
;WITH cte
AS (SELECT *
FROM workrecord2 w
WHERE EXISTS (SELECT 1
FROM employee e
WHERE employeerun = employeeno
AND company = '1'
AND date = '2013-05-06'))
DELETE FROM cte
Note : 当你想要 delete 时,我们不能在 CTE 内使用 JOIN .
8
如果你想在 more thanone table 中使用 delete related data ,你可以使用如下的查询结构:
delete d.*,r.*,a.* from notifications_data d inner join notification_recipient_details r on d.notifications_data_id=r.notifications_data_id inner join notifications_audit a on d.notifications_data_id = a.notifications_data_id
以上查询完美无缺, deletes data 来自 three tables
2
这个版本应该有效
DELETE WorkRecord2
FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
Where Company = '1' AND Date = '2013-05-06'
16 回答
试试这个查询:
试试这个,它可能会有所帮助
试试这个:
它应该是:
这是我目前用于删除甚至更新的内容:
您没有为
Company
和Date
指定表,您可能想要修复它 .使用
MERGE
的标准SQL:@Devart的答案也是标准SQL虽然不完整,但看起来应该更像这样:
关于上述内容的重要一点是很明显删除是针对单个表,如第二个示例中强制要求标量子查询 .
对我来说,各种专有的语法答案更难阅读和理解 . 我想@frans eilering在答案中最好地描述了心态,即编写代码的人并不一定关心将阅读和维护代码的人 .
这可能对你有所帮助 -
或试试这个 -
这是一个简单的查询,一次从两个表中删除记录 .
您需要指定要删除的表,这是一个带别名的版本:
只需在
DELETE
和FROM
之间添加要删除记录的表的名称,因为我们必须指定要删除的表 . 同时删除ORDER BY
子句,因为删除记录时无需订购 .所以你的最终查询应该是这样的:
这是我的SQL Server版本
在SQL Server Management Studio中,我可以轻松创建SELECT查询 .
我可以执行它,并显示所有联系人 .
现在将SELECT更改为DELETE:
您将在SELECT语句中看到的所有记录都将被删除 .
您甚至可以使用相同的过程创建更难的内部联接,例如:
使用
CTE
的另一种方式 .Note : 当你想要
delete
时,我们不能在CTE
内使用JOIN
.如果你想在 more than one table 中使用 delete related data ,你可以使用如下的查询结构:
delete d.*,r.*,a.* from notifications_data d inner join notification_recipient_details r on d.notifications_data_id=r.notifications_data_id inner join notifications_audit a on d.notifications_data_id = a.notifications_data_id
以上查询完美无缺, deletes data 来自 three tables
这个版本应该有效