相关疑难解决方法(0)

如何从SQL Server中的SELECT更新?

SQL Server中,可以insert使用SELECT语句进入表:

INSERT INTO Table (col1, col2, col3)
SELECT col1, col2, col3 
FROM other_table 
WHERE sql = 'cool'
Run Code Online (Sandbox Code Playgroud)

是否也可以通过?更新SELECT?我有一个包含值的临时表,并希望使用这些值更新另一个表.也许是这样的:

UPDATE Table SET col1, col2
SELECT col1, col2 
FROM other_table 
WHERE sql = 'cool'
WHERE Table.id = other_table.id
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server select

3546
推荐指数
31
解决办法
409万
查看次数

MySQL错误1093 - 无法在FROM子句中指定更新的目标表

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'

我怎么能克服这个?

mysql subquery mysql-error-1093 sql-delete

556
推荐指数
10
解决办法
42万
查看次数

MySQL - 基于SELECT Query的UPDATE查询

我需要检查(从同一个表)基于日期时间的两个事件之间是否存在关联.

一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间.

如果第一个事件在第二个事件之前完成,那么我想将它们链接起来.

到目前为止我所拥有的是:

SELECT name as name_A, date-time as end_DTS, id as id_A 
FROM tableA WHERE criteria = 1


SELECT name as name_B, date-time as start_DTS, id as id_B 
FROM tableA WHERE criteria = 2
Run Code Online (Sandbox Code Playgroud)

然后我加入他们:

SELECT name_A, name_B, id_A, id_B, 
if(start_DTS > end_DTS,'VALID','') as validation_check
FROM tableA
LEFT JOIN tableB ON name_A = name_B
Run Code Online (Sandbox Code Playgroud)

那么,基于我的validation_check字段,我可以使用SELECT嵌套运行UPDATE查询吗?

mysql select sql-update

465
推荐指数
9
解决办法
95万
查看次数