database - IN 子句在数据库查询中的用法

标签 database database-design mysql

我写了一个查询,我想知道在查询中使用 IN 子句的效果。

查询一 从khata payment_track中选择* 其中 Property_ID IN(从 khata_header 中选择 Property_id,其中 DIV_ID=2)

查询二 从khata payment_track KPT、khata_header KH中选择* 其中 kh.Property_id=KPT.Property_id 和 KH.DIV_Id=2

我想知道 1)哪一个更快 2) 使用 IN 子句的任何影响,如果查询有 3 个 IN 子句,是否建议使用。

你能帮我举例吗

最佳答案

您的第二个查询速度更快,但最好使用联接(它看起来更好并且具有相同的执行计划):

select
  *
from
  khatapayment_track t
    inner join khata_header h on (h.property_id = t.property_id)
where
  h.div_id = 2

您也可以使用mysql profiler比较您的查询。

关于database - IN 子句在数据库查询中的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3139687/

相关文章:

mysql - 来自多个表 MySql 的单个查询

Mysql存储过程传递字符串列表

php - 根据出版商选择图书时,动态下拉搜索仅返回一行

php - 用户设置/隐私数据库设计

sql-server - 您对这个 SqlServer 设计问题的第一直觉

php不打印数据库信息

带有 HAVING COUNT 子句的 mysql 查询

java - HQL查询存储在map中的一对多关系

php - 如何在 PHP 中插入 NULL 值

sql - 所有者 ID 类型数据库字段