我有一张MySQL表,用来存储酒店预订的数据。我需要一个查询,看看每个日期住在酒店的客人的数量。
我能够创建一个查询(使用子查询),但是它执行得非常慢。是否有更好的方法来获取所请求的数据?(例如,将表连接到它自己,或者其他什么。)
我的问题是:
SELECT CheckOutDate AS Date,
(SELECT SUM(NrOfGuests) FROM tblGuests tG
WHERE tG.CheckInDate <= tblGuests.CheckOutDate
AND tG.CheckOutDate > tblGuests.CheckO
我需要一个优化以下mysql删除查询的建议:
$group_id = '1234';
// DELETE GROUP DISCUSSION POSTS
mysql_query("DELETE FROM table_groupposts
WHERE grouppost_grouptopic_id
IN (SELECT grouptopic_id from table_grouptopics
WHERE g
要在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
有谁知道怎么做吗?我尽量避免执行第一个查询,然后在代码中使用第二个查询查找重复项。
我很好奇MySQL的where ... in (...)语句是否删除了作为优化的副本。
例如,如果我使用子查询,使用DISTINCT删除重复项是否重要?
一个示例查询:
SELECT * FROM foo WHERE bar_id IN (
SELECT id FROM bar where user_id = 4
);
子查询有可能返回重复的bar.id's。
MySQL查询优化是否使查询更好?
SELECT * FROM foo WHERE bar_id IN (
SELECT DISTINCT id FROM bar where user_id = 4
);
从我在
下面是一个mysql查询,它从user_property获取数据,提供具有特定条件的表。因此,在这个查询中,我需要一个来自用户表的用户id(我可以从具有公司名称的用户表中识别用户id和用户表)。这就是我使用第二个选择查询的原因,但我无法得到结果。
$sql = "SELECT * FROM user_property upr, offers ofr,
WHERE ofr.property_id = upr.property_id
AND ofr.agent_id = (
SELECT id FROM users
我目前正在使用以下内容更新我的表:
UPDATE Check_Dictionary
SET InDict = "No" WHERE (Leagues, Matches, Line) IN (SELECT * FROM (
SELECT Leagues, Matches, Line FROM Check_Dictionary
WHERE InDict = "No")as X)
但是,当我拥有大型数据集(40k+行)时,这似乎相当低效/缓慢。我正在进行的所有搜索都表明,与子
我有一个MySQL查询,它将得到列中的金额之和。我发现我的数据中也有负值。我想把正数和负值分开。你能帮我吗?
我试过这个查询..。但是它给了我一个无效的使用组函数。
以下是我的查询:
SELECT sum(AMOUNT) from deposit where type = 42 and sum(AMOUNT) > 0
下面的sql查询在我的运行MySQL5的开发服务器上运行得很好,但是当我在运行MySQL4的实时服务器上尝试它时,它抛出了一个错误,有人能告诉我如何调整我的查询以在MySQL4上运行吗?
select * FROM Properties WHERE propertyid IN (select id from todelete)
我尝试创建应该删除重复表行的mysql事件。
这是我的查询
DELETE FROM locations
WHERE id NOT IN (SELECT id
FROM locations
GROUP BY acc_id,`date`)
我发现了一个错误:
Error Code: 1093
You can't specify target table 'locations' for update in FROM clause.
如何更改查询以使其工作?
我有一个查询,它可以很好地处理MySQL,但是如果我在Oracle中执行它,我会得到以下错误:
SQL Error: ORA-01779: cannot modify a column which maps to a non key-preserved table
01779. 00000 - "cannot modify a column which maps to a non key-preserved table"
*Cause: An attempt was made to insert or update columns of a join view whic
我在清理MySQL表中的数据时遇到了问题。问题是,我们需要使用子查询中的表来确定需要删除的内容。
DELETE
FROM dates
WHERE event_ref IN (*list of event_refs*)
AND person_ref IN (
SELECT person.person_ref
FROM person
JOIN dates ON dates.person_ref = person.person_ref AND dates.event_ref = 14
WHERE dates.date < CURDATE()
)
Subquery给所有的人一个
我有一个使用InnoDB的关系型InnoDB数据库,它将课程与课程参与者连接起来。此数据库的问题是course_attendees中的course_attendees列没有设置为外键。在course_attendees表试图引用的地方缺少了很多课程。
我想删除那些记录,因为课程已经不属于了。我编写了这个select查询,它选择了应该删除的所有课程:
SELECT
ca.`id`
FROM `course_attendees` AS ca
LEFT JOIN `courses` c
ON ca.`course_id` = c.`id`
WHERE c.`id`
我一直试图在Mysql 5.7中执行以下查询。
DELETE FROM tablename1 T1
WHERE EXISTS (
SELECT *
FROM tablename1 T2
WHERE T2.code = T1.code
AND T2.dname = T2.dname
AND T2.created_date > T1.created_date
);
但是它给我带来了一个错误:原因: liquibase.exception.DatabaseException:您的SQL语法出现了错误;检查与MySQL服务器版本对应的手册,以获得在T1附近使用的正确语法。
此查询在Oracle中
当配置文件是参与者时,此查询将获取具有最多证据记录的配置文件。有没有办法让它在mysql查询中更快?
SELECT profiles.*, count(*) AS counted_profiles
FROM `profiles`
INNER JOIN (SELECT ev.actor_id
FROM evidences AS ev
WHERE ev.actor_type = 'Profile') AS ev2
ON ev2.actor_id = profiles.id
GROUP BY ev2.actor_id
ORD
从mysql数据库中只删除一条记录的正确方法是什么?此查询仅用于选择一条记录。
SELECT * FROM Customers WHERE Country='Mexico' ORDER BY Country ASC LIMIT 1;
当替换select删除不起作用的.but时,上述查询将正确运行。
DELETE FROM Customers WHERE Country='Mexico' ORDER BY Country ASC LIMIT 1;
我怎么才能修好它?
我试图在Vapor应用程序中运行一个SQL查询,并将其解码为一个MySQLModel,但显然它返回了一个错误。
final class ClassA: MySQLModel {
var id: Int?
var title: String
var description: String
}
但是当我运行一个简单的Select原始查询时,它会返回一个解码错误:“键‘title’所需的类型'String‘的值”。这很奇怪,因为在MySQL控制台中运行的sql确实正确运行。问题是,当我解码相同的查询时,而不是使用MySQLModel,而是使用如下内容:
fin
我在MySQL 5.5 (或以前的版本)中使用以下查询多年,没有任何问题:
SELECT t2.Code from (select Country.Code from Country order by Country.Code desc ) AS t2;
结果的顺序总是在我需要的时候递减。
上周,我刚刚迁移到一个新的MySQL版本(实际上,我迁移到了MariaDB 10.0.14),现在使用相同数据库的相同查询不再降序排序。它是按升序排序的(或者按自然顺序排序,实际上并不确定)。
那么,谁能告诉我这是一个bug,还是最近版本的MySQL/MariaDB的行为发生了变化?
尝试使用"SELECT *“而不是"DELETE FROM”进行查询,它运行得很好。
DELETE FROM `80dage_garmin_track` t1 WHERE EXISTS (
SELECT 1
FROM `80dage_garmin_track` t2
WHERE t1.Length = t2.Length
AND t1.Time = t2.Time
AND t1.idgarmin_track > t2.idgarmin_track
)
MySQL Error: .#1064 -您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以获得
我有两个表,用来存储GBs的数据。
当我在任何一个表上执行一个带有"WHERE .“的查询时,整个MySQL就会下降。
查询示例:
DELETE FROM `records`
where exists (
select *
from `measurements`
where `file_id` = 17
and measurements.id = records.measurement_id
)
我不知道从哪里开始调试,或者如何解决这个问题。
查询示例,该查询在运行在不同数据库上的同一服务器上运行良好,但在主DB上却要花费很长时间。
s
我正在使用Rails和MySQL将遗留系统转换为web应用程序。
在将数据层转换为MySQL过程时,几乎没有什么地方是我所坚持的。
给出以下情况;
FUNCTION first_function
SELE Table1
REPL Table1.SmaCode WITH SMA(code,HcPc,FromDate)
ENDFUNC
FUNCTION SMA
... Lot of conditions ...
Lookup(param1,param2) * Parameters are based on the conditions above
.. Lot more conditions .
我正在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-Query中是否可以使用子查询修改数据库?相关数据库为mysql数据库。
更多细节:相关查询如下所示:
SELECT * FROM table WHERE id = $x
变量$x可以替换为任何内容。唯一的限制是,查询是通过php的mysql_query()执行的,这会阻止执行多个后续查询。在这种情况下,修改数据库将很容易,只需设置
$x = "42; DROP TABLE foo;"
MySQL网站有一个关于在数据库中存储分层数据的。我正在尝试编写返回节点的直接子节点的查询。我不想只是从MySQL网站复制/粘贴查询,因为我正试图以一种数据库不可知的方式来处理这一点。
这是我正在尝试Zend_Db_Select-ify的查询
SELECT node.name, (COUNT(parent.name) - (sub_tree.depth + 1)) AS depth
FROM nested_category AS node,
nested_category AS parent,
nested_category AS sub_parent,
(
我正在构建一个带子查询的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
现在,我希望将其作为子
我试图使用QueryInterface在Typo3中添加订单,但我不知道如何将mysql查询转换为Typo3查询。
下面是我的mysql查询:
SELECT * FROM `primary_table` pt
ORDER BY (
IFNULL(
(select SUM(a.score) from child_table_1 a
left join child_table_1_mm b on a.uid = b.uid_foreign
where b.uid_local = pt.uid and a.uid = 3), 0) +
IFNULL(
(select SU
我需要这个查询在计数为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 |