相关疑难解决方法(0)

您无法在FROM子句中指定要更新的目标表

我有一个简单的mysql表:

CREATE TABLE IF NOT EXISTS `pers` (
  `persID` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(35) NOT NULL,
  `gehalt` int(11) NOT NULL,
  `chefID` int(11) DEFAULT NULL,
  PRIMARY KEY (`persID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

INSERT INTO `pers` (`persID`, `name`, `gehalt`, `chefID`) VALUES
(1, 'blb', 1000, 3),
(2, 'as', 1000, 3),
(3, 'chef', 1040, NULL);
Run Code Online (Sandbox Code Playgroud)

我试图运行以下更新,但我只得到错误1093:

UPDATE pers P 
SET P.gehalt = P.gehalt * 1.05 
WHERE (P.chefID IS NOT NULL 
OR gehalt < 
(SELECT (
    SELECT MAX(gehalt * 1.05) 
    FROM pers …
Run Code Online (Sandbox Code Playgroud)

mysql sql mysql-error-1093

353
推荐指数
9
解决办法
25万
查看次数

MySQL:SELECT UNIQUE VALUE

在我的表中,我有几个重复.Ineed在mysql表列中找到唯一值.

SQL

SELECT column FROM table
WHERE column is unique

SELECT column FROM table
WHERE column = DISTINCT
Run Code Online (Sandbox Code Playgroud)

我一直在尝试谷歌,但几乎所有的查询都更复杂.

我喜欢的结果是所有非重复值.

编辑 我想要具有独特的价值......

不是所有的价值一次......(区别)

mysql

15
推荐指数
2
解决办法
4万
查看次数

INSERT和返回ID,或者如果DUPLICATE KEY返回MySQL中的现有ID

我有一个"标签"表,在"标签"列上有一个UNIQUE,以防止重复.

我有一个"bookmarks_tags"表,它将书签与标签相关联,并且在"bookmark_id"和"tag_id"列上有一个UNIQUE,以防止重复.

但是,我需要人们能够添加相同的标签,为了实现这一点,我需要一些方法来检索现有标签的ID,以用作"bookmarks_tags"表中的参考.

有没有办法编写INSERT,这样如果它检测到重复,它会返回该副本的ID?或者,INSERT ... SELECT是否更适合"bookmarks_tags"表?

这里的关键是它必须在两种条件下工作; 添加为新的,或检索旧的.

此外,LAST_INSERT_ID()在此方案中无用,因为可以随时添加相关标签.

有任何想法吗?

mysql

9
推荐指数
2
解决办法
7052
查看次数

在没有ANY()的情况下哪个是最便宜的聚合函数

如果DBMS没有ANY()聚合函数,我通常使用MAX()或MIN().

在mySQL和MS-SQL中有没有更便宜的东西?

mysql sql t-sql

8
推荐指数
1
解决办法
6794
查看次数

返回重复记录(activerecord,postgres)

我有以下查询返回重复的标题,但是:idnil:

Movie.select(:title).group(:title).having("count(*) > 1")

[#<Movie:0x007f81f7111c20 id: nil, title: "Fargo">,
#<Movie:0x007f81f7111ab8 id: nil, title: "Children of Men">,
#<Movie:0x007f81f7111950 id: nil, title: "The Martian">,
#<Movie:0x007f81f71117e8 id: nil, title: "Gravity">]
Run Code Online (Sandbox Code Playgroud)

我尝试添加:id到select和group但它返回一个空数组.如何归还整个电影记录,而不仅仅是标题?

postgresql activerecord ruby-on-rails

7
推荐指数
1
解决办法
3228
查看次数

python sqlalchemy不同的列值

我的SQLite数据库中有6个表,每个表有6列(Date, user, NormalA, specialA, contact, remarks)和1000多行.

如何使用sqlalchemy对Date列进行排序以查找重复日期,并删除该行?

python sqlalchemy

7
推荐指数
1
解决办法
3289
查看次数

如何从表中列出重复值?

我有这张桌子。某些行在 Kanji 列中具有重复值。

如何显示相同汉字出现不止一次的这些行?

CREATE TABLE [dbo].[Phrase] (
    [PhraseId]              UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
    [English]               NVARCHAR (250)   NOT NULL,
    [Kanji]                 NVARCHAR (250)   NULL,
    PRIMARY KEY CLUSTERED ([PhraseId] ASC) );
Run Code Online (Sandbox Code Playgroud)

sql-server

5
推荐指数
1
解决办法
1972
查看次数

如何在一列中查找具有不同值的重复条目SQL Server 2008 R2

我曾尝试搜索此站点,但无济于事。我不知道如何正确地表达我的问题,但是这里有:

我有一张桌子,里面有多家公司的员工。他们都有唯一的员工编号(Num),但可以属于几个不同的公司(Comp)。问题是,对于雇员所属的每个公司,我们都有单独的条目。我需要能够找到每个有多个条目的员工,以及他们所属的所有公司(Comp)。

我想不出一个解决方案,就是将所有公司都分离到临时表中,并比较所有公司是否有重复记录。

这是一个例子:

如果我在表格中有以下内容,

Comp     Num  FName  MI  LName
McD's    1    Dick   H   Harper
BrgrKng  1    Dick   H   Harper
Wendy's  2    Jane   B   Doe
Arby's   3    John   G   Doe
Run Code Online (Sandbox Code Playgroud)

我想要以下结果:

Comp     Num  FName  MI  LName
McD's    1    Dick   H   Harper
BrgrKng  1    Dick   H   Harper
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

SELECT Comp, Num, FName, MI, LName
FROM Employees
HAVING COUNT(Num) > 1
ORDER BY LName, FName, MI
Run Code Online (Sandbox Code Playgroud)

由于HAVING子句并试图显示Comp以及Num,因此此代码无法正常工作。

每当我尝试运行它时,都会收到预期的错误消息:

选择列表中的“ Employees.Comp”列无效,因为它既不包含在聚合函数中也不在GROUP BY子句中。

如果不将公司的所有员工分开,然后将每个公司与每个公司进行比较,我该怎么办?

边注:

以下条目均无帮助:

如何查找键重复但在所有列中都不重复的行?

查找多个列的重复ID唯一ID列

在SQL表中查找重复值

sql sql-server

2
推荐指数
1
解决办法
556
查看次数

GROUP BY lname ORDER BY显示错误的结果

我写的这个查询,列出了销售竞赛中的前25名,显示错误的结果.

用户没有显示应该在列表中相当远的地方.知道问题是什么吗?

SELECT u.fname, u.lname, SUM(p.point) as points 
  FROM comp_sale s, comp_product p, comp_user u
 WHERE s.prod_id = p.product_id 
   AND s.sale_id = u.wp_id 
 GROUP BY lname 
 ORDER BY points DESC limit 25
Run Code Online (Sandbox Code Playgroud)

table comp_user:

user_id int(11) NO  PRI NULL    auto_increment
fname   varchar(255)    NO      NULL    
lname   varchar(255)    NO      NULL    
storename   varchar(255)    NO      NULL    
city    varchar(255)    NO      NULL    
phone   varchar(255)    NO      NULL    
wp_id   int(11) NO      NULL    
type    varchar(255)    NO      NULL    
Run Code Online (Sandbox Code Playgroud)

table comp_sale

prod_id int(11) NO      NULL    
sale_id int(11) NO      NULL    
serial  varchar(255) …
Run Code Online (Sandbox Code Playgroud)

mysql sql group-by

1
推荐指数
1
解决办法
6697
查看次数

如何在SQL中使用group by时返回多个列

我想要员工的姓名以及他们的薪水和部门,他们的薪水最高不超过50,000.我有以下几点

SELECT department, MAX(salary) as Highest salary
FROM employees
GROUP BY department
HAVING MAX(salary) < 50000
Run Code Online (Sandbox Code Playgroud)

如何获取要退回的员工姓名?

mysql sql

0
推荐指数
2
解决办法
4735
查看次数