【解析mysql的查询、子查询及连接查询教程】教程文章相关的互联网学习教程文章

Mysql:左连接和内连接子查询【代码】

我有3张桌子,我已经离开了,但是我想从表格3中添加一个字段,它与表格2连接在一起.Table1 id name surname table2_fkTable2 id entry_name entry_code table3_fkTable3 id type_name type_descSELECT `Name`, `Type Description` (SELECT Table1.name AS `Name`, Table1.surname AS `Surname`, t2.entry_name AS `Entry`, t2.entry_code AS `Entry Code`, t3.type_name AS `Type Name`, t3.type_desc AS `Type Description`FROM Tabl...

MySQL和MariaDB之间不兼容 – FROM子句中的子查询.

MariaDB声称是MySQL的替代品,但MySQL docs声明此功能自5.7.7版本开始提供:Before MySQL 5.7.7, the SELECT statement cannot contain a subquery inthe FROM clause.MariaDB knowledge base说不允许这样做:The SELECT statement cannot contain a subquery in the FROM clause. 但是,这未在MariaDB’s compatibility page中列出. 我做了一些测试,似乎在MariaDB中没有对这种查询的支持,但MariaDB文档中的冲突信息让我感到困惑.那么...

MySQL:使用子查询中的join进行更新【代码】

我有一张桌子上有产品和一张桌子,上面有产品评论.产品表包含父产品和儿童产品.母产品应该从儿童产品中获得所有评论.我做了:DROP TABLE IF EXISTS products; CREATE TABLE products (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `parent` int(10) unsigned DEFAULT NULL,`review` decimal(3,2) DEFAULT NULL,PRIMARY KEY(id) );DROP TABLE IF EXISTS reviews; CREATE TABLE reviews (`id` int(10) unsigned NOT NULL AUTO_INC...

MySQL搜索优化(用子查询替换长正则表达式)【代码】

我有一个MySQL查询select query from HR_Health_Logs where query REGEXP 'CPU|MAC|PC|abacus|calculator|laptop|mainframe|microcomputer|minicomputer|machine';除了正则表达式更长,并包含许多同义词和拼写错误. 我需要缩短这个简短的内容,并有一个包含所有同义词和拼写错误的表格,以便我可以避免这个非常长的查询.所以我正在寻找类似的东西select query from HR_Health_Logs where query REGEXP '**HAVE A TABLE WITH ALL MY SY...

mysql – 我的SQL子查询 – 返回Blob,需要文本值【代码】

我正在尝试在mysql中编写一个case语句来检查一个人是否预订了房间.如果有,则返回房型,否则返回信息性消息.( CASE WHEN (eab.accommodation_id > 0) THEN (SELECT roomtype FROM event_accomodation WHERE id = eab.accommodation_id) ELSE (IFNULL(eab.accommodation_id, 'No accommodation needed')) END ) AS accommodation这是查询的相关部分.如果我像这样运行它,则为住宿栏中的每一行返回BLOB.如果我将单词’roomtype’更改为返...

子查询并为MySQL中的多个外键选择最旧的行【代码】

我有两张桌子:product (idproduct, name, description, tax)product_storage (idstorage, idproduct, added, quantity, price)对于每种产品,它可能是不同的价格和最古老的“首先出售” 例如在存储中我有:1, 1, 2010-01-01, 0, 10.0 2, 1, 2010-01-02, 0, 11.0 3, 1, 2010-01-03, 10, 12.0 4, 2, 2010-01-04, 0, 12.0 5, 2, 2010-01-05, 10, 11.0 6, 2, 2010-01-06, 10, 13.0 7, 3, 2010-01-07, 10, 14.0 8, 3, 2010-01-08, 10...

Mysql替代为mysql 5.1.49中子查询内的LIMIT【代码】

SELECT student_id FROM `students` AS s1 WHERE student_id IN (SELECT s2.student_id FROM `students` AS s2WHERE s1.year_of_birth = s2.year_of_birthLIMIT 10)无法在我的服务器上处理此查询.它会丢失错误,表示此版本的mysql不支持子查询内的限制等(ERROR 1235). 我的mysql 5.1.49版本有什么解决方案吗?SELECTid,region FROM (SELECTregion,id,@rn := CASE WHEN @prev_region = regionTHEN @rn + 1ELSE 1END AS rn,@prev_regi...

MySQL:WHERE子句中带有NOT IN的从属子查询非常慢【代码】

我正在使用open Id登录来审核我的应用程序中的用户详细信息.如果用户第一次登录我们认为是注册的OPEN ID.我正在使用此详细信息生成审计登录报告.样本表数据.+---------+----------+-----------+---------------+ | USER_ID | PROVIDER | OPERATION | TIMESTAMP | +---------+----------+-----------+---------------+ | 120 | Google | SIGN_UP | 1347296347000 | | 120 | Google | SIGN_IN | 1347296347000 |...

mysql – 在锦标赛中打破关系(按子查询排序)【代码】

在曲棍球结果数据库中,我有一个表格,用于存储每个游戏中每个团队的统计数据.对于每场比赛,(通常)有两个条目 – 每个队伍一个.这些条目存储了team_id,match_id以及该比赛中球队的表现 – 获得的积分,得分和其他许多与此无关的统计数据. 以下是构建锦标赛表的近似查询:SELECT team_id, COUNT(match_id) AS total_matches,SUM(goals_for) AS total_goals_for, SUM(points) AS total_points FROM match_teams WHERE match_id IN...

如何在MySQL v8中模拟LATERAL JOIN以执行每行的子查询或连接?【代码】

我有两张桌子:film with primary key film_id actor with primary key actor_id我现在想填写一个表film_actor(film_id,actor_id),它将每部电影连接到250个随机演员.所以每部电影应该有250个不同的演员. 在PostgreSQL中,我会这样做:insert into film_actor(film_id, actor_id) select film_id, actor_id from film cross join lateral (select actor_idfrom actorwhere film_id is not null -- to force lateral behavioror...

MySQL – 如何通过值将子查询用于IN语句【代码】

问题是获取表列数据并将其用作IN函数的值列表; 在这个例子中,我创建了2个表:电影和流派 表“电影”包含3列:id,name和流派.表“genres”包含2列:id和name.+- movies-+ | |- movie_id - int(11) - AUTO_INCREMENT - PRIMARY | |- movie_name - varchar(255) | |- movie_genres - varchar(255) | | +- genres-+|- genre_id - int(11) - AUTO_INCREMENT - PRIMARY|- genre_name - varchar(255)两个...

mysql – 当我使用子查询时,为什么我的查询不使用任何索引?【代码】

我有以下表格(删除了未用于我的示例的列):CREATE TABLE `person` (`id` int(11) NOT NULL,`name` varchar(1024) NOT NULL,`sortname` varchar(1024) NOT NULL,PRIMARY KEY (`id`),KEY `sortname` (`sortname`(255)),KEY `name` (`name`(255)) );CREATE TABLE `personalias` (`id` int(11) NOT NULL,`person` int(11) NOT NULL,`name` varchar(1024) NOT NULL,PRIMARY KEY (`id`),KEY `person` (`person`),KEY `name` (`name`(255)...

MySQL更新查询优化 – 子查询与否?【代码】

哪个查询最快:我自己的测试没有显示任何明显的结果: QUERY1:UPDATE items, brands SET items.brand_id = brands.id WHERE brands.name = 'apple'–vs– QUERY2:UPDATE items SET brand_id = (SELECT id FROM brands WHERE name = 'apple')我无法在Google上找到有关此内容的任何数据;也许一些SQL专家在这里知道答案? 只看语法,我个人更喜欢第一个.虽然我说的其他人更喜欢第二个(更明显)?解决方法:我希望它们运行同样快,但在~4...

在MySQL中没有子查询字段的模式计算?【代码】

在我的应用程序中,每个产品组都有许多产品,每个产品都有一个制造商.这些关系由MySQL存储在具有id字段的InnoDB表product_groups中,以及具有id,product_group和manufacturer字段的产品中. 有没有办法在每个产品组中找到最常见的制造商,而无需选择子查询? 这就是我目前正在做的事情:SELECT product_groups.id,(SELECT manufacturer FROM productsWHERE product_group = product_groups.idGROUP BY manufacturerORDER BY count(*) DE...

带有count的子查询后插入MYSQL【代码】

我正在尝试将一些数据插入到表中,但仅当子查询COUNT是> 0. 这就是我到目前为止所拥有的.INSERT INTO users_friends (userId, friendId) VALUES (77, 100) WHERE (SELECT COUNT(id) FROM users WHERE email = 'a@g.com') > 0两个查询都独立工作. 希望这应该是一个简单的修复.干杯解决方法:SQLFiddle demo if there are records ‘a@g.com’ SQLFiddle demo if there are NOT records ‘a@g.com’INSERT INTO users_friends (userI...