我有一个MySQL查询,我认为它会抛出一个异常,但它确实not.Just想找出为什么?查询为:
select count(distinct uid)
from nov_visit_20161201
where pv_listen>0
and uid in (select distinct uid from nov_visit_20161120 where pv_listen>0);
问题是表nov_visit_20161120没有pv_listen列,但是查询运行得很好。当我单独运行子查询时:
select distinct uid from nov_visit_2016112
我在下面的语句中遇到了mysql中的一些问题
select *
from actors a
where NOT EXISTS (select 1 from movies z where z.actorid = a.actorid);
此语句工作正常,但以下语句不工作,这是
delete from actors
where NOT EXISTS(select 1 from movies z where z.actorid = actorid );
在终端中,它显示查询OK,0行受影响
我试图更新一个基于wordpress + polylang的大型站点中特定语言的旧链接,我正在使用这个查询
MYSQL
update `wp_posts`
set `post_content` = replace(`post_content`, 'https://old-link', 'https://new-link/')
WHERE `ID` IN (
SELECT `ID`
FROM `wp_posts`
WHERE
`ID` IN (
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(`
我正在尝试在MySQL 5.0中对表单进行更新:
update mytable.myfield t
set f = 'blah'
where t.id in (select v.id from myview v where ...);
MySQL告诉我:
ErrorNr. 1443
The definition of table 'v' prevents operation UPDATE on table 't'.
MySQL文档列出了这个错误,但(像往常一样)没有说明它的含义。有人能为我解释一下吗?我只在子查询中引用视图,在主查询中只引用表,我
我有Mysql(mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1),我编写了这样一个查询:
SELECT
(SELECT count(*)
FROM items
WHERE items.shop_id = shops.id),
(SELECT sum(click)
FROM items
WHERE items.shop_id = shops.id),
(SELECT sum(view)
FROM items
WHERE items.shop_
我必须从带有Linq查询的表中生成一个I (int)列表,查询特定条件(计数列= 0)。
在SQL中具有如下语句:
select id
from person
where (select count(*) from mitgliedschaft
where mitgliedschaft.person_id = person.id
AND (austritt IS NULL OR austritt > getDate())) = 0
试图用Linq来做这件事:
List<int> personIDsOhneAktuelleMitglied
我有一个日期分区,使用一些时间戳条件进行查询,如下所示
SELECT *
FROM table
WHERE _PARTITIONTIME BETWEEN TIMESTAMP("2017-07-01")
AND TIMESTAMP("2017-07-13")
我还想对其他列进行筛选(在分区过滤器之后)。我以为这么做会有用的
SELECT *
FROM table
WHERE _PARTITIONTIME BETWEEN TIMESTAMP("2017-07-01")
AND TIMESTAMP("2017-07-13"
如果您在表1中有需要用来为表1中返回的每一行返回表2中的数据的数据。在PHP中使用一组查询,其中一个嵌入到另一个的while循环中,还是在查询中使用一个SQL函数,哪个更有效?
例如:
$qry = mysql_query(SELECT date FROM table1)
while($res = mysql_fetch_array($qry))
{
$qry = mysql_query("SELECT name FROM table2 WHERE date=$res['date']")
}
或者作为在查询中从table1返回Id的函数来完成。
下面的查询运行得很好。我使用外部select中的值来过滤内部select中的值。
SELECT
bk.ID,
(SELECT COUNT(*) FROM guests WHERE BookingID = bk.ID) as count
FROM
bookings bk;
但是,以下select将不起作用:
SELECT
bk.ID,
(SELECT SUM(count) FROM (SELECT COUNT(*) AS count FROM guests WHERE BookingID = bk.ID GROUP BY RoomID) sub) as s
我正试图在Salesforce中创建一个SOQL查询(以及后来的一个报告),该查询生成以下数据:
根据父记录分组的子记录的计数,其中父记录在过去一年中没有创建子记录。
我首先尝试了这一点;但是,salesforce返回了一个错误,说明“不支持半连接子选择的嵌套”。
SELECT Id, Name, Training_Course__c
FROM Training_Record__c
WHERE Training_Course__c IN (
SELECT Id
FROM Training_Course__c
WHERE Id NOT IN (
SELECT Training
我一直试图跟踪现有MySQL (5.7,Linux)代码中的错误行为。当子查询返回错误时,我对所发现的行为感到惊讶/困惑/不高兴。
SELECT * FROM charges WHERE ChargeID IN
(SELECT ChargeID FROM history WHERE BatchID = 3500);
上面的查询返回0行。进一步调查,子查询:
SELECT ChargeID FROM history WHERE BatchID = 3500
原来是引起错误(这是正确的):
Error Code: 1054. Unknown column 'ChargeID'
我想把表中的一些数据放到shell脚本中的变量中。现在我这样做:
export NAME=`mysql -NB -e "select name from user where id = $ID"`
export AGE=`mysql -NB -e "select age from user where id = $ID"`
export LOCATION=`mysql -NB -e "select location from user where id = $ID"`
这可以很好地工作,但我希望在一个查询中完成所有这些操作,例如:
select
我正在尝试将MS Access查询转换为MySQL,问题是将MS Access top转换为MySQL limit以获得相同的结果。当我将查询更改为limit时,会发现此版本的MySQL在子查询中不支持limit。
这是MS Access查询:
SELECT a.FK_CONTRIBUTOR_ID
FROM tPUBLISHERS
INNER JOIN (tCONTRIBUTORS AS b
INNER JOIN tCLIPS AS a ON b.CONTRIBUTOR_ID = a.FK_CONTRIBUTOR_ID)
ON tPUBLISHERS.PUBLISHER
我正在尝试使用" and“和"or”条件过滤数据。我想要获得这个mySql查询:
SELECT * FROM `data` WHERE ((`property1`=11) OR (`property1`=13)) AND (`property2`=6)
我写的rest api是这样的:
http://localhost:4000/api/Data/?filter[where][or][0][property1]=11&filter[where][or][1][property1]=13&filter[where][and][0][property2]=6
环回j
我有一个mysql查询,如下所示:
SELECT users*100 as totalusers, totalusers*90 AS totalsalerys FROM table
正如您所看到的,我希望在计算totalsalerys时重用totalusers,这样我就不必再次编写相同的代码。这在mysql中似乎不起作用,有没有其他简单的方法可以做到这一点?
我的查询只是一个示例,将*100和*90更改为某个非常长的公式,您可能会明白我的意思。
要在MySQL数据库中查找重复记录。这可以写成:
SELECT address, count(id) as cnt FROM list
GROUP BY address HAVING cnt > 1
这给了我:
101 Saint ST 3
我想拉出它,这样它就可以显示重复的每一行。示例如下:
SIM JANE 101 Saint ST
JOHN SMITH 101 Saint ST
有谁知道怎么做吗?我尽量避免执行第一个查询,然后在代码中使用第二个查询查找重复项。
这里的初学者*。我有一个允许用户在其中运行查询的表。但是,在我的系统中,我允许用户在表上运行查询,然后使用相同的查询结果运行另一个查询。
SELECT * FROM employees WHERE jobTitle = 'Sales Rep'
SELECT * FROM employees WHERE officeCode = '1'
以前使用SQLite语法,我能够通过将这两个查询操作到
SELECT * FROM (SELECT * FROM employees WHERE jobTitle = 'Sales Rep') WHERE offi
我有两个分别正确的查询,但是一起出现了一个错误:
WITH minimum_time AS
(
SELECT DATE (min(_PARTITIONTIME)) AS minimums
FROM `Day`
WHERE DATE (_PARTITIONTIME) = "2020-11-20"
)
SELECT *
FROM `Day`
WHERE DATE (_PARTITIONTIME) > (SELECT minimums
FROM minimum_time)
我得到了一个错误:
我想执行一个从table1获取链接的MySQL查询,并检查这个链接在table2和table3中是否存在。
现在我正在做2个查询,但我想将2个查询合并为1,并保证返回10个结果?(第一次之后,目前mysql_num_rows($rez)>0,返回结果小于10)
谢谢。
$result = mysql_query("SELECT id,link FROM table1 WHERE Order By id DESC LIMIT 0,10");
while ($row = mysql_fetch_array($result)){
$rez = mysql_query(
我正在mysql中尝试使用子查询,并遇到了以下语句,在这些语句中我们可以在不同的地方使用子查询。
select Salary from Employee where (select max(Salary) from Employee) < 400;
select Salary from Employee where Salary < (select max(Salary) from Employee);
select Salary from (select * from Employee) as seq1 where Salary < 400;
现在,我感到困惑的是,在哪里我
我正在构建一个带子查询的MySQL查询。正如中所述,该查询需要group-by查询返回的记录数,因为我需要数据库中有记录的天数。因此,我使用了以下内容:
SELECT
COUNT(*)
FROM
(
SELECT
cvdbs2.dateDone
FROM
cvdbStatistics cvdbs2
WHERE
cvdbs2.mediatorId = 123
GROUP BY
DATE_FORMAT( cvdbs2.dateDone, "%Y-%d-%m" )
) AS activityTempTable
现在,我希望将其作为子
下面是返回子查询的MySQL代码。我希望子查询只返回一行。
SELECT DISTINCT w.cname
FROM works w
WHERE
(SELECT DISTINCT w.cname, AVG(w.salary)
FROM works w
WHERE 1
GROUP BY w.cname
)
<
(SELECT DISTINCT w.cname,AVG(w.salary)
FROM works w
WHERE 1
GROUP BY w.cname
)
MySQL错误说:
1242 -子查询返回多于1行
所以我得到了一条SQL语句。我的想法是,我想做一个不区分大小写的。我是这样做的:
SELECT
FilenameId AS id,
LOWER(CONVERT(BINARY(Filename.Name) USING utf8)) AS name
FROM Filename
WHERE name LIKE '%something%'
COLLATE utf8_general_ci
这很好用,但是我的查询也会返回大小写转换后的名称。我想要做的是合成不敏感的名称并对其进行LIKE查询,但也返回未大小写转换的名称。
SELECT
FilenameId AS
Mysql 5.7嵌套select查询抛出错误时
Unknown column 'CRoute.ID' in 'where clause'
这是我的查询
SELECT CTrip.ID, CRoute.Name,
(SELECT COUNT(StudentID) FROM CRouteStudent WHERE CRoute.ID = CRouteStudent.RouteID) AS ExpectedStudents,
(SELECT COUNT(*) FROM (SELECT COUNT(*) FROM CRouteStudent WHERE CRout
在MySQL 5.1.34服务器上,我遇到以下令人困惑的情况:
mysql> explain select * FROM master.ObjectValue WHERE id IN ( SELECT id FROM backup.ObjectValue ) AND timestamp < '2008-04-26 11:21:59';
+----+--------------------+-------------+-----------------+----------------------------------------------------------
考虑到MySQL中的这个SQL查询:
SELECT * FROM tableA WHERE tableA.id IN (SELECT id FROM tableB);
MySQL对tableA中的每一行执行子查询SELECT id FROM tableB多次吗?
有没有一种方法可以使sql在不使用变量或存储过程的情况下运行得更快?
为什么这通常比使用LEFT JOIN慢
我有以下MySQL查询:
SELECT l.user_id, u.ID, u.ULN, count(u.ULN) As ULN_count
FROM table_Learning l
LEFT JOIN table_users u
ON l.ULN = u.ULN
WHERE l.user_id is null
AND (SELECT COUNT(ULN)
FROM Table_users
WHERE ULN = u.ULN
GROUP BY ULN) < 2
GROUP BY u.ULN
我从这个查询中所期望的是,字段ULN_Count的值不能大于1。
我使用这个工具名为TOAD进行mysql分析,在数据比较向导中,当我输入一个查询时,它告诉我查询是好的,我在phpMyAdmin中测试了这个查询,它工作得很好。
查询:
SELECT firstName from user where id=1 LIMIT 1
表名为: user id firstName lastName 1 Bill Smith 2 John Smith
查询1:
select distinct email from mybigtable where account_id=345
需要0.1秒
查询2:
Select count(*) as total from mybigtable where account_id=123 and email IN (<include all from above result>)
用0.2秒
查询3:
Select count(*) as total from mybigtable where account_id=123 and email IN (select distinct email
来自mysql :“联合中的第二个或更高版本的SELECT语句,依赖于外部查询”。但是UNION查询如何依赖外部查询呢?有人能给我举个清楚的例子吗?例如,在这个查询中:
SELECT * FROM sometable
WHERE id IN (
SELECT 1
UNION
SELECT 2 /* ! */
)
第二,union中的select语句(它本身是子查询)有依赖的UNION select_type,我不知道为什么,它必须是UNION,因为它不依赖任何东西。
我正在MySQL 4.0.30上运行一个非常基本的子查询。
我的目标是为任何在特定数据库上拥有授权的用户从mysql.user表中获得用户权限,如mysql.db表中所述。该查询如下所示:
mysql> select * from mysql.user where User IN
(select User from mysql.db where Db='db_name')\G
正如您所看到的,它非常基本,并且遵循。但是,当我执行该操作时,它会出现以下响应错误:
ERROR 1064: You have an error in your SQL syntax. C
这是我的疑问-
SELECT column_one FROM generation1 UNION SELECT column_one FROM generation2 WHERE column_one = value;
我试图查询两个表中的值,如果没有找到结果,但where条件中的值返回结果时,PHP就执行代码块,即使这两个表中的值都不存在。
请说明如何使此查询正常工作,并返回"where“条件的值?
我在mysql中绑定了一个替代来限制子查询,因为mysql 5不支持子查询中的limit关键字:
SET @i = 0;
SELECT BuildID, COUNT(TestCase)
from results R
where R.BuildID IN (select B.BuildID
from build B
where ( @i := ( @i +1 ) ) <= 25
and B.BuildID NOT LIKE 'T
我可能在CodeIgniter和MySQL逻辑上有问题。我有两个查询,我已经执行了它们,每个查询都有一个不同的数组变量,我想放入一个变量。
$query1 = $this->db->query("select a from base where id=1");
$query2 = $this->db->query("select b from base where id=2");
$this->data['result'] = $query1->result_array();
$this->data[
在MySQL中,可以对where子句中字段应用本机函数。例如。
SELECT * FROM t WHERE DATE(the_date) < '2012-11-19';
或
SELECT * FROM t WHERE a+b < 20;
现在,可以在mongoose查询的条件字段上使用函数吗?假设我查询的内容如下所示:
tSchema.find({a+b: {$lt: 20}}, callback);
我正在尝试用knex编写MySQL子查询sql,但查询的结果并不理想。 这是我的MySQL查询: select *
from istifta
where istifta_id not in (
select istifta_id
from status
where status = 'divided'
) 这是我转换为Knex的查询: subquery = await ctx.knex
.select('istifta_id')
.from('status'
我试图插入多个行,这些行的值不是从现有表中提取的,而是从外部提供的,以及使用INSERT ... SELECT ... WHERE的where条件。
以下查询不起作用:
mysql> insert into `my_table` SELECT 1 as a, 2 as b, 3 as c from dual UNION ALL SELECT 4 , 5 , 6 from dual UNION ALL SELECT 7 , 8 , 9 from dual where 1>2 ;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Dup
我需要编写一个MySQL查询来获取每月的帐户数、新帐户数和旧帐户数。旧帐户的状态描述为cond1。
我试过了:
select month(a.ct) as month,
count(select id from a where cond1) as oldAccount,
count(select id from a where !cond1) as newAccount
from accounts a
where ~conditions~
group by month(a.ct)
它不能准确地工作。
一般来说,我需要知道如何在子查询中使用外部表。有谁可以帮我?
EXPLAIN SELECT node_id
FROM node
WHERE person_id IN (SELECT person_id
FROM user
WHERE is_locked = 0);
结果是MySql告诉我该子查询是派生的。但事实并非如此!
(我知道这很容易被重写为连接,但我想知道为什么MySQL认为这是一个依赖子查询。)
我使用的第三方应用程序在本地开发环境中运行良好(使用MariaDB 10.4,并报告了MySQL 5.7 1的插入兼容性),但在部署环境中崩溃(使用MySQL服务器v8.0.27)。
我可以将问题定位到以下MySQL查询:
SELECT DISTINCT user_id,title,description,posted,expire,thumbnail,(SELECT MAX(us.id) FROM Wo_UserStory us WHERE us.user_id = Wo_UserStory.user_id) AS id FROM Wo_UserStory WHERE (user_id IN
我们的500 K行视图变得很糟糕,因为它们不能使用底层表的索引。View上的where子句对视图创建没有影响。这个视图是在Mysql子句应用之前创建的吗,就像在Sql server中一样?我们有办法用Where子句和Joins来加速视图查询吗?
,MySQL视图的一个问题是,MySQL不会将谓词从外部查询“推”到视图查询中。
select * from reportview_23 where id = 100;
以下查询起作用:
SELECT DISTINCT `number`
FROM `employee`
WHERE `number` IN
(SELECT `department_manager`
FROM `department`)
UNION
(SELECT DISTINCT `manager`
FROM `employee`
WHERE `manager` IS NOT NULL)
但是,当我用圆括号包装查询时,它就不再工作了:
(SELECT DISTINCT `number`
F
我有一个非常复杂的MySQL查询,其中包含对同一个子查询的三次使用。MySQL实际上会运行子查询三次吗?(这是一款昂贵的手机。)如果是这样,有没有办法让MySQL保存或缓存结果,这样它就不会这么做了?我可以将数据保存在一个大数组中,然后将其重新提供给MySQL,但我不希望像这样将它移出并放回数据库中。
这是出现三次的子查询:
SELECT id FROM programs
WHERE submitter_id=32 AND id in (
SELECT id FROM programs
WHERE feed_id=2478 AND id in (
SELEC
我应该在每个子查询中执行一个WHERE,还是只在主查询上执行?我的问题是关于表演。例如:
,在所有子查询中,
SELECT ...
FROM ...
WHERE id_user = :id_user
UNION ALL
SELECT ...
FROM ...
WHERE id_user = :id_user
在这种情况下,每个子查询将具有相同的WHERE子句,由id_user进行过滤。
,其中仅在主查询上
SELECT
SUBQUERY.*
FROM (
SELECT ..., id_user
FROM ...
UNION ALL
SELECT