草庐IT

mysql - 使用连接优化查询

如何使用连接完成查询。我是数据库的新手。这个查询工作正常..但我想让它更坚固$query="SELECTstudent_idFROMstudentsWHEREstudent_idIN(SELECTstudent_idFROMclass_studentsWHEREclass_idIN(SELECTclass_idFROMclass_courseWHEREteacher_id=".$_SESSION['teacher_id']."))";还有其他方法吗 最佳答案 使用IN可以转换为正确的连接:SELECTs.student_idFROM

mysql - INNER JOIN 中的子查询 (MySQL)

我似乎对内部连接中的子查询有问题,但我没有这样做。服务器:通过UNIX套接字的本地主机软件:MySQL软件版本:5.5.32-nmm2-log-(Ubuntu)数据库客户端版本:libmysql-5.5.32有一个包含3个表的m:n表结构,其中只有2个与问题相关。第一个是一个包含Actor的表,标识符:caid。第二个是连接Actor和电影的交叉表(Actorid:caid,电影id:id)当我像这样创建一个完整的内部连接时:SELECTcount(*)ASCount,lastname,firstnameFROMDVDPROFILER_dvd_common_actorINNERJOIN

mysql - SQL select from inner join where count 大于

医生doctorid(PK)doctornamePatientpatientid(PK)patientnamedoctoridIhavethefollowingquerytogetthedoctorsdetailswiththenumberofpatientsthathe/sheconsults.assumeapatienthasonlyonedoctortoconsult.selectd.doctorid,d.doctorname,count(p.patientid)fromdoctordinnerjoinpatientpond.doctorid=p.doctoridgroupbyp

mysql - Left Join 查询返回错误结果

我已经尝试了几个小时来使用MySQL进行左连接查询。我有一个名为“at_friends”的表,用于存储用户之间的关系。id|id_user1|id_user2|accepted1|2|1|12|1|3|0表示用户1和用户2是好友,用户1向用户3发送了好友请求。这是我的表“at_users”id|name1|"John"2|"Mike"3|"Bob"我试过这个查询:SELECTat_users.id,at_users.nameFROMat_usersLEFTJOINat_friendsONat_friends.id_user1=at_users.idORat_friends.id_use

mysql - Moodle SQL 查询检索过去 90 天内注册类(class)的所有用户

我需要一个SQL查询,该查询将向我提供过去90天内注册类(class)且未暂停的所有用户。我做了一些搜索,发现了这个:SELECTDISTINCTu.idASuserid,c.idAScourseidFROMmdl_useruJOINmdl_user_enrolmentsueONue.userid=u.idJOINmdl_enroleONe.id=ue.enrolidJOINmdl_role_assignmentsraONra.userid=u.idJOINmdl_contextctONct.id=ra.contextidANDct.contextlevel=50JOINmdl_cou

php - 在 MySql 中选择匹配一对多关系右侧的行

我有4张table。一份用于公司,一份用于产品,一份用于公司地址,一份用于公司董事。产品、主管和地址表与公司表是一对多关系。所以一个公司可以有很多产品、很多地址和很多董事。CREATETABLEIFNOTEXISTS`companies`(`company_id`int(11)NOTNULLAUTO_INCREMENT,`company_name`varchar(50)NOTNULL,PRIMARYKEY(`company_id`))ENGINE=InnoDBDEFAULTCHARSET=latin1AUTO_INCREMENT=3;CREATETABLEIFNOTEXISTS`pro

mysql - 加入 2 个表 SQL 查询

我正在尝试为“从2个表中选择”编写查询。表格如下:Table_1:id(int)name(varchar)statusint(0,1)Table_2:id(int)table_1_id(int)name(varchar)time(datetime)我需要从Table_2中选择不早于1天并且与状态为1的table_1关联的所有行。我现在的做法是使用2个查询和2个foreach数组,这是非常低效的。有人可以帮我用join写一个查询吗?感谢您的宝贵时间。 最佳答案 不需要循环,你可以在表之间做一个JOINselectt2.*fromTab

MySQL - 使用 LEFT JOIN 会产生意想不到的结果

我有两个表orderedproducts和productsinstocks。这是表结构:订购产品表:+-----+---------+-----------+----------+--------------+|id|orderid|productid|quantity|productgroup|+-----+---------+-----------+----------+--------------+|117|1016186|265385|5|Main||118|1016186|407454|6|Main||119|1016186|975045|7|Main||120|101618

mysql - SQL - 如何连接两个表并根据它们之间的 ID 对列求和?

我有两张table。一张表是主数据表tbl1:+-------------+------------+------------+|ID|Name|Total|+-------------+------------+------------+|1|a|10||2|b|5||3|c|4||4|a|4|+-------------+------------+------------+第二个表tbl2包含子数据。表之间的键是ID表tbl2:+-------------+------------+|id|qty|+-------------+------------+|1|4||1|3||1|1

mysql - 有人可以推荐一个关于 MySQL 索引的好教程,特别是在连接期间在 order by 子句中使用时吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我可以尝试发布并解释我要运行的确切查询,但我要遵循那句古老的格言,“给一个人一条鱼,他会吃一天,教一个人鱼,他会吃一辈子。”SQL优化似乎是特定于查询的,即使你能为我解决这个特定的查询,我以后也将不得不编写更多的查询,我想了解索引的工作原理一般而言。不过,这里是对我当前问题的简要描述。我有一个连接三个表并在0.2秒内运行的查询。惊人的。我添加了一个“ord