我想INNER JOIN在SQL Server 2008中删除使用.
但我得到这个错误:
消息156,级别15,状态1,行15
关键字"INNER"附近的语法不正确.
我的代码:
DELETE FROM WorkRecord2
INNER JOIN Employee ON EmployeeRun=EmployeeNo
WHERE Company = '1' AND Date = '2013-05-06'
Run Code Online (Sandbox Code Playgroud) story_category我的数据库中有一个表有损坏的条目.下一个查询返回损坏的条目:
SELECT *
FROM story_category
WHERE category_id NOT IN (
SELECT DISTINCT category.id
FROM category INNER JOIN
story_category ON category_id=category.id);
Run Code Online (Sandbox Code Playgroud)
我试图删除它们执行:
DELETE FROM story_category
WHERE category_id NOT IN (
SELECT DISTINCT category.id
FROM category
INNER JOIN story_category ON category_id=category.id);
Run Code Online (Sandbox Code Playgroud)
但我得到了下一个错误:
#1093 - 您无法在FROM子句中为更新指定目标表'story_category'
我怎么能克服这个?
我怎么能unique row id不unique row id存在?
我的桌子是
col1 col2 col3 col4 col5 col6 col7
john 1 1 1 1 1 1
john 1 1 1 1 1 1
sally 2 2 2 2 2 2
sally 2 2 2 2 2 2
Run Code Online (Sandbox Code Playgroud)
我希望在重复删除后留下以下内容:
john 1 1 1 1 1 1
sally 2 2 2 2 2 2
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些查询,但我认为它们依赖于行ID,因为我没有得到理想的结果.例如:
DELETE
FROM table
WHERE col1 IN (
SELECT id
FROM table
GROUP BY id
HAVING (COUNT(col1) > 1)
)
Run Code Online (Sandbox Code Playgroud) 我有两个表,一个用于工作截止日期,一个用于描述工作.每个作业都可以处于状态,一些状态意味着必须从另一个表中删除作业的截止日期.
我可以通过以下方式轻松SELECT完成符合我标准的工作/截止日期LEFT JOIN:
SELECT * FROM `deadline`
LEFT JOIN `job` ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
Run Code Online (Sandbox Code Playgroud)
(不status属于job表格deadline)
但是当我想删除这些行时deadline,MySQL会抛出错误.我的查询是:
DELETE FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
Run Code Online (Sandbox Code Playgroud)
MySQL错误没有说明:
您的SQL语法有错误; …
有2个表,spawnlist而且npc,我需要从中删除数据spawnlsit.
npc_templateid = n.idTemplate是唯一"连接"表格的东西.我试过这个脚本,但它不起作用.
我试过这个:
DELETE s FROM spawnlist s
INNER JOIN npc n ON s.npc_templateid = n.idTemplate
WHERE (n.type = "monster");
Run Code Online (Sandbox Code Playgroud) 我试图一次从几个表中删除.我做了一些研究,想出了这个
DELETE FROM `pets` p,
`pets_activities` pa
WHERE p.`order` > :order
AND p.`pet_id` = :pet_id
AND pa.`id` = p.`pet_id`
Run Code Online (Sandbox Code Playgroud)
但是,我收到了这个错误
Uncaught Database_Exception [1064]:您的SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在'p,
pets_activitiespa ... 附近使用正确的语法
我以前从来没有做过十字表删除,所以我现在没经验并且卡住了!
我究竟做错了什么?
是否有可能在MySQL 数据库Neo4j中创建/删除不同的数据库?或者,至少,如何删除现有图形的所有节点和关系以获得测试的干净设置,例如,使用类似于rmrel或的shell命令rm?
我在SQL Server中有一个表.我想从中删除前1000行.但是,我尝试了这个,但我没有删除前1000行,而是删除了表中的所有行.
这是代码:
delete from [mytab]
select top 1000
a1,a2,a3
from [mytab]
Run Code Online (Sandbox Code Playgroud) 我必须为现有表添加唯一约束.这很好,除了表已经有数百万行,并且许多行违反了我需要添加的唯一约束.
删除有问题的行的最快方法是什么?我有一个SQL语句,它找到重复项并删除它们,但它需要永远运行.有没有其他方法可以解决这个问题?也许备份表,然后在添加约束后恢复?
sql postgresql duplicate-removal unique-constraint sql-delete
我正在尝试这样的查询:
DELETE FROM term_hierarchy AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM term_hierarchy AS th1
INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)
WHERE th1.parent = 1015
);
Run Code Online (Sandbox Code Playgroud)
你可以告诉我,如果同一个tid有其他父母,我想删除1015的父关系.但是,这会产生语法错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM ter' at line …Run Code Online (Sandbox Code Playgroud) sql-delete ×10
sql ×7
mysql ×6
sql-server ×3
inner-join ×2
subquery ×2
database ×1
delete-row ×1
duplicates ×1
in-subquery ×1
left-join ×1
neo4j ×1
nodes ×1
postgresql ×1