我有一个mysql视图,它在FROM子句中有子查询。此视图可更新。我试着更新单张表,它运行得很好。但我无法插入到那张桌子上。上面写着:
错误代码: 1471。插入的目标表action_view不可插入。
我的视野:
CREATE OR REPLACE
VIEW `action_view` AS
SELECT
`ca`.`id` AS `id`,
`cah`.`title` AS `title`,
`ca`.`idCareActionHead` AS `idCareActionHead`,
`ca`.`id
我正在尝试将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
我在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
下面的sql查询在我的运行MySQL5的开发服务器上运行得很好,但是当我在运行MySQL4的实时服务器上尝试它时,它抛出了一个错误,有人能告诉我如何调整我的查询以在MySQL4上运行吗?
select * FROM Properties WHERE propertyid IN (select id from todelete)
我目前在一个MySql数据库中有两个表。
结构:
messages
id | content | user_id | time
submessages
id | subcontent | msg_id | user_id | time
在submessages表中,列msg_id是一个外键,引用了表messages中的id列。
现在我需要从php查询
$cur_userID = $user->current_id; // current user id.
SELECT * FROM messages WHERE id > '{$_GET['id']}
我正在使用MySQL,并尝试构造一个查询来执行以下操作:
我有:
Table1 [ID,...]
Table2 [ID, tID, start_date, end_date,...]
我想从我的查询中得到的是:
Select all entires from Table2 Where Table1.ID=Table2.tID
**where at least one** end_date<today.
我现在让它工作的方式是,如果表2包含(例如)5个条目,但其中只有1个条目今天是end_date<,那么这是唯一将被返回的条目,而我希望同时返回其他(过期)条目。我有实际的查询和
我需要这个查询在计数为0时返回结果,而不是仅仅产生一个空集。我如何调整我的查询,使其生成下面的表,其中计数和适当的日期都是'0‘?
mysql> select count(test.id), date(insert_datetime) date
from db.table test where date(insert_datetime)='2015-08-17'
group by date(insert_datetime);
+--------------+------------+
| count(test.id) | date |
mysql> select id,name from Employee where salary >= all (select salary from Employee);
Empty set (0.00 sec)
mysql> select id,name from Employee where salary >= all (select max(salary) from Employee);
+--------+------------+
| id | name |
+--------+------------+
| 001 | Joh
下面的查询在MySQL 5.x中运行良好
SELECT
m_area.id, m_area.cn_areaName, m_area.de_areaName,
m_area.en_areaName,m_area.jp_areaName,t_shop.count
FROM
m_area left join
(
select t_shop.areaID, count(areaID) AS count
from t_shop
group by t_shop.areaID
) t_shop
on m_area.id = t_shop.areaID
但是,当我必须在具有相同DB结构和数据
这个问题在这里也存在: .但没有回答。
一个类似的情况发生在我身上,就像发生在这个问题的作者身上一样:
replays表有4M行
players表有4000万行
该查询使用where exists,完成该查询需要大量时间(70):
select * from `replays`
where exists (
select * from `players`
where `replays`.`id` = `players`.`replay_id`
and `battletag_name` = 'test')
order by `i
我目前正在处理这个项目,该项目有一些mysql查询。项目中的所有mysql查询都是由另一个开发人员完成的。总之,我有点混淆了他在下面所做的查询:
SELECT MIN(s_date) AS s_date,
client_id
FROM tb1
WHERE flag = 1
AND client_id NOT IN (
SELECT DISTINCT client_id
FROM tb1
WHERE flag = 0
)
GROUP BY client_id;
查询的第一部分是检查是否标志=1,第二部分是检
考虑到MySQL中的这个SQL查询:
SELECT * FROM tableA WHERE tableA.id IN (SELECT id FROM tableB);
MySQL对tableA中的每一行执行子查询SELECT id FROM tableB多次吗?
有没有一种方法可以使sql在不使用变量或存储过程的情况下运行得更快?
为什么这通常比使用LEFT JOIN慢
在我前面的一个问题中,我已经提出了解决方案
MySQL1235错误:
错误代码: 1235。这个版本的MySQL还不支持‘限制& IN/ALL/ANY/SOME子查询’
下面的将抛出1235:
DELETE
FROM job_detail_history
where id not in (select id from job_detail_history order by start_time desc limit 2);
为此,我得到了@Zaynul Abadin Tuhin给出的解,它也适用于我。他只是在我的子查询上添加了一个选择层。据他所说,这是一些my
我在这里提供mysql查询:
mysql> UPDATE tbl_driver SET active_flag=NULL WHERE Pk_driver_id = (SELECT Pk_driver_id FROM tbl_driver JOIN tbl_location ON tbl_driver.pk_driver_id = tbl_location.fk_driver_id WHERE updated_at <= NOW() - INTERVAL 3 MINUTE AND active_flag=1);
ERROR 1093 (HY000): You can't
我正在使用Wordpress和MySQL,我有以下查询
SELECT COUNT(p.ID)
FROM wp_posts AS p
LEFT JOIN wp_postmeta AS t1
ON t1.post_id = p.ID
AND t1.meta_key = 'followers_count'
LEFT JOIN
(SELECT tt.term_id,tr.object_id
FROM wp_term_relationships AS tr
INNER JOIN wp_te
我使用MySQL子查询创建了一个视图,它在我的本地主机上工作,它在生产中失败了,因为MySQL5.6版本,它不支持视图上的子查询,所以我需要帮助重写整个查询,我尝试使用UNION ALL,但它告诉我每个MySql需要相同数量的列。
新建查询:
CREATE VIEW vista_inventarionacional AS
SELECT T.Ultima_Actualizacion,
r.nombre AS Red,
co.nombre AS Comuna,
equipo.nombre AS Descripcion,
equipo.marca AS Marca,
我有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_
我有两个表(页面和注释),大约每个13万行.
我想列出没有任何注释的页面(外键是comments.page_id)
如果我执行正常的左侧外部联接,那么运行需要超过750秒的。(130 k^2= 17B)然而,如果我执行相同的联接,但使用表的子查询,则只需1秒即可。
服务器版本:5.6.44-日志- MySQL社区服务器(GPL):
查询1.正常连接,750+秒
SELECT p.id
FROM `pages` AS p
LEFT JOIN `comments` AS c
ON p.id = c.page_id
WHERE c.page_id IS NULL
GROUP BY 1
查询
表创建
CREATE TABLE `users` (
`id` INT UNSIGNED NOT NULL,
`name` VARCHAR(100) NOT NULL,
PRIMARY KEY(`id`)
);
CREATE TABLE `email_address` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT UNSIGNED NOT NULL,
`email_address` VARCHAR(50) NOT NULL,
INDEX pn_user_index(`user_id`),
EXPLAIN SELECT node_id
FROM node
WHERE person_id IN (SELECT person_id
FROM user
WHERE is_locked = 0);
结果是MySql告诉我该子查询是派生的。但事实并非如此!
(我知道这很容易被重写为连接,但我想知道为什么MySQL认为这是一个依赖子查询。)
请在mysql中不使用子查询将以下查询转换为联接查询
SELECT u.id, u.name, u.avatar, u.slug, u.location
FROM user_registration as u
WHERE u.id <>'3' AND u.id NOT IN (SELECT f.user_id FROM followers as f WHERE f.follower_id ='3')
order by id
在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 query_cache行为有一些奇怪的地方,我想知道这是否是一种正常的行为。
假设我有一张物品表
ID | Item
-----------
1 | Item_1
2 | Item_2
3 | Item_3
这里将使用的查询是:SELECT id FROM items
当我第一次使用它时,我的状态Qcache_inserts中有一个+1,第二次使用它时,我有+1到Qcache_hits。太好了,运转得很好。
现在,如果我使用以下查询:SELECT COUNT(1) FROM (SELECT id FROM items) my_table
子查询SELECT i
SELECT * FROM foo f
INNER JOIN (
SELECT bar_id, MAX(revision_id) FROM bar b
GROUP BY bar_id
) t ON t.bar_id = f.bar_id
好的,那么听听这个问题:假设这些表中有数以百万计的记录,我希望查询尽可能高效。
MySQL是否要为bar表提取所有记录,然后在join级别而不是在子查询中对on语句进行筛选?或者,在联接筛选器之前,是否有一种方法可以单独使用SQL来过滤子查询中的项?
似乎查询所有的记录来过滤它们将是低效的,而且我还没有想过有什么办法来解决这个问题。
我尝试过这
我有一个非常简单的查询,但我需要在其中进行另一个查询。我对SQL和PHP知之甚少,所以我想请你帮忙。
$result = mysql_query("SELECT * FROM img");
while ($row = mysql_fetch_assoc($result))
{
$imgName = $row['name'];
$catID = $row['catid'];
// Problem
// Need to get category NAME from category ID
$result2 = mysql
我有以下疑问:
SELECT * FROM a WHERE
cityid IN (SELECT id FROM b)
OR regionid IN (SELECT id FROM b)
OR countryid IN (SELECT id FROM b)
有没有办法(使用MySQL语法)避免运行子查询3次?
如何修复此查询?我收到以下错误:
'where子句‘中未知列'count_of_confirmed_rec’
MySQL查询:
SELECT
(SELECT COUNT(a.col_1)FROM table_1 a
JOIN table 2 b ON a.col_id= b.col_id) count_of_confirmed_rec,
c.col_1,
FROM table_3 c
LEFT JOIN table_4 d ON c.col_id = d.col_id
WHERE d.col_1 = 'value'
AND c.col_1 = CAS
通常,对于子查询,我通常从其他表中获得其他信息。例如从一个表中获取用户详细信息,然后在同一个查询中执行一个子查询,并从另一个表获得用户权限。但这一次,我发现自己陷入困境,我需要让所有的用户从表‘主’,这是不存在的(与相关的job_ID)从另一个表,‘次要’。
表:
primary
ID | email | name
1 a@a.c a
2 a@b.c b
3 a@c.c c
secondary
ID | job_ID
1 1234
查询
SELECT
ID,
我正在做一个项目,在那里我会吸引用户和他们最新的博客文章。我们拥有的软件存储一个类似于drupal的版本ID。不过,我在查询中遇到了许多错误。我已经习惯了编写MySQL查询,我认为这是可行的,但是Postegres给了我一些问题。
Users Table:
id
name
...
Posts Table:
id
authorID
versoinID
title
content
.....
SELECT u.id, u.name, p.id, p.versionID p.title FROM Users u LEFT OUTER JOIN Posts p on u.id = p.author
我有一个带有子查询的查询,它应该是闪电式的,但是速度太慢了。有人能建议让MySQL正常运行的方法吗?
使用MySQL服务器版本: 5.5.41 MySQL社区服务器(GPL)
执行组合查询:
Explain SELECT * FROM StudySpecSubject WHERE SubjectID IN (
SELECT SubjectID FROM StudySpecSubject WHERE SpecimenID ='123456');
id select_type table type