【mysql – 奇怪的SQL代码:为什么他们使用子查询而不是join?】教程文章相关的互联网学习教程文章

mysql-FROM子句中的SQL子查询【代码】

我发现了一些可以解决此问题的问题,而且MySQL似乎不允许这样做.很好,我在FROM子句中不必有子查询.但是,我不知道该如何解决.这是我的设置: 我有一个指标表,该表具有我想要的3列:ControllerID,TimeStamp和State.基本上,数据收集引擎每5分钟与数据库中的每个控制器联系一次,并将条目粘贴到指标表中.该表包含这三列,外加我不关心的MetricsID.也许有更好的方法来存储这些指标,但是我不知道.无论如何,我都希望一个视图为每个不同的Cont...

php-使用子查询在mysql中构建嵌套对象【代码】

我不确定在mysql中是否可行,但是我正在尝试从查询而不是php构建嵌套对象.我有一个调查结果数据库,我想构建一个对象,其关键是问题,而值是答案的数组/对象.这可能吗?我正在使用这样的东西:SELECT ss.*,(SELECT int_value FROM `SubmittedQuestions` AS su WHERE ss.id = su.submitted_survey_id) FROM `SubmittedSurveys` as ss;我必须在PHP中构建此对象吗?我的问题是我正在用PHP执行所有这些循环,我认为构建对象要花一些时间,而...

mysql-为什么使用IN(子查询)的查询要比使用IN(离散列表)的查询花费更长的时间【代码】

这一直困扰着我,为什么这个查询SELECT * FROM`TABLE` WHERE `value` IN (SELECT val FROMOTHER_TABLE WHERE `date` < '2014-01-01')比顺序运行这两个查询要慢几个数量级SELECT `val` FROMOTHER_TABLE WHERE `date` < '2014-01-01' Result: +----+ | val | +-----+ | v1 | | v2 | | v3 | | v7 | | v12 | +-----+和这个查询:SELECT * FROM`TABLE` WHERE `value` IN ('v1', 'v2', 'v3', 'v7', 'v12')解决方法:从文档中:(重...

返回基于子查询计数的MYSQL结果?【代码】

有没有一种方法可以调整以下MYSQL查询,使其仅显示视频计数大于0的结果?我尝试了以下方法,但无法识别video_countSELECT channels.*, (SELECT COUNT(*) FROM videos WHERE videos.video_publisher_id = channels.channel_id) as `video_count` FROM channels WHERE channel_active = 1 AND video_count > 0 AND channel_thumbnail IS NOT NULL ORDER BY channel_subscribers DESC解决方法:将子查询从SELECT子句移到FROM子句.内部...

mysql-如何从不存在id的子查询中获取【代码】

我有一个SQL查询正在从一个表中检索结果,但是我需要它仅在ID不在另一个表中时才显示结果. 例$sql = "SELECT id FROM TABLE_1 WHERE id NOT IN(SELECT more_id FROM TABLE_2)这个想法是,如果id在“ more_id”列表中不存在,则应该显示结果. 它似乎不起作用,任何帮助将不胜感激.我应该提到“ more_id”只是一个相同的“ id”,但是在另一个存储其他记录的表中.解决方法:这应该工作:$sql = "SELECT TABLE_1.idFROM TABLE_1LEFT JOIN TA...

当包含子查询时,为什么MySQL不使用索引?【代码】

我有以下查询,这很好,但是随着brands表的增长,它会变慢:mysql> explain select brand_id as id,brands.name from tags-> INNER JOIN brands on tags.brand_id = brands.id-> where brand_id in-> (select brand_id from tags where outfit_id in-> (1,6,68,265,271))-> group by brand_id, brands.name-> ...

MYSQL子查询在COUNT个位置【代码】

我试图创建一个SQL查询,该查询根据表单发送的选项而有所不同.在此我想尝试与子查询中的WHERE子句共享主WHERE子句语句的效果. 以pass_count为例,我想计算total_passfail =“ Pass”的行数.但是,由于主查询WHERE函数的含义,此数字可能会更改(在主WHERE函数中,我有8个可能的选项,例如日期跨度,用户,团队,部门,它们相应地影响着整体数据). 有什么方法可以使整个WHERE子句影响子查询,而不是我必须向每个子查询增加8个WHERE.实际上,我只希...

mysql-使用联接,分组依据和子查询,我的天哪!【代码】

我有一个数据库,其中有一个表格,用于查询小马的详细信息,另一个用于联系人(所有者和饲养员)的详细信息,然后还有其他几个用于参数(颜色,县,区号等)的小表.为了给我列出现有的小马配置文件,并提供各种详细信息,我使用以下查询:SELECT *FROM profilesINNER JOIN prm_breedgenderON profiles.ProfileGenderID = prm_breedgender.BreedGenderIDLEFT JOIN contactsON profiles.ProfileOwnerID = contacts.ContactIDINNER JOIN prm_breed...

在左联接中使用group by的MySQL子查询-优化【代码】

MySQL似乎无法使用GROUP BY子查询优化选择,最终导致执行时间长.对于这种常见情况,必须有一个已知的优化. 假设我们正在尝试从数据库返回所有订单,并带有一个标志,指示该订单是否是客户的第一笔订单.CREATE TABLE orders (order int, customer int, date date);客户检索第一笔订单非常快捷.SELECT customer, min(order) as first_order FROM orders GROUP BY customer;但是,一旦我们使用子查询将全部订单集加入其中,它就会变得非常缓...

mysql限制与内部联接和子查询【代码】

我有以下查询:SELECT saturday_combinations.index, v.val AS `row` , COUNT( * ) AS `count` FROM saturday_combinations INNER JOIN (SELECT ONE AS val FROM saturday_combinations WHERE ONE IS NOT NULL UNION SELECT TWO AS val FROM saturday_combinations WHERE TWO IS NOT NULL UNION SELECT THREE AS val FROM saturday_combinations WHERE THREE IS NOT NULL UNION SELECT FOUR AS val FROM saturday_combin...

mysql-子查询以及使用相关子查询在外部进行引用的可能性【代码】

我正在刷新我的SQL.我正在阅读有关子查询的信息,以及在相关子查询之外进行引用的可能性.例:SELECT * FROM ORDERS O WHERE 'ROAD BIKE' = (SELECT DESCRIPTION FROM PART P WHERE P.PARTNUM = O.PARTNUM) 这与联接等效:SELECT O.ORDEREDON, O.NAME, O.PARTNUM, O.QUANTITY, O.REMARKS FROM ORDERS O, PART P WHERE P.PARTNUM = O.PARTNUM AND P.DESCRIPTION = 'ROAD BIKE' 我的问题是我没有得到第一个表格,以及何时...

带有多个结果错误的mysql子查询【代码】

我正在寻找解决此问题的方法,有些方法很接近,但似乎找不到解决方法.我有一张包含各种信息的“运行”表,其中一栏是有关它适用的公司的信息.我还有一张存储公司所有信息的公司表.在运行表的公司列中,公司由公司表中的“索引器”标识. 现在,我有一个搜索,您可以在其中搜索有关运行的任何信息,以查找包含搜索短语(包括公司)的任何数量的记录.作为运行表的company列,仅具有标识符编号,即. 34、23、5等,我还需要检查公司表名称栏中的匹配...

mysql-如何将数据库子查询重写为联接?【代码】

我正在尝试将此子查询重写为联接.我已经阅读了关于SO的其他问题,但是无法解决这个问题.create table job (emplid int, effdt date,title varchar(100),primary key (emplid, effdt) );insert into job set emplid=1, effdt='2010-01-01', title='Programmer'; insert into job set emplid=1, effdt='2011-01-01', title='Programmer I'; insert into job set emplid=1, effdt='2012-01-01', title='Programmer II';insert into job...

mysql-如何使用JOIN代替子查询(NOT IN)【代码】

我想列出$_SESSION [‘userid’]跟随但不跟随的所有人员 以下查询适用于以下演员,它可以正常工作 IN(慢)SELECT user.* FROM user WHERE user.userid IN (SELECT follow.followtoid FROM follow WHERE follow.followerid = $_SESSION['userid'])加入(快速)SELECT p.* FROM user pJOIN follow f ON p.userid = f.followtoid WHERE f.followerid = $_SESSION['userid']对于那些仍不遵循演员表的人,它可以工作,但是看起来很慢请建议...

MySQL的拆分列值用于子查询?【代码】

我正在使用OpenCart插件,该插件将多个ID组合为单个字符串,并将其存储在单个列中.示例值为21760和6772:15499:15497.串联ID的数量范围可以从1到5(大多数是两个或三个ID). 我想在查询结果中获取这些ID的名称值,这些ID的存储顺序与ID的存储顺序相同. 为简单起见,假设两个表只有两列(实际上,我要在第三个表上进行联接,但这与紧迫的问题无关): 表一:|id | name | |6773 | Google | |15497 | Apple | |15500 | ...