php - 搜索功能带有2年数据并加入

标签 php mysql sql

这里是查询

SELECT *
FROM Table1
WHERE complete='Y'
  AND shipped='Y'
  AND active='Y'
  AND create_dttm > '2013-10-10 08:28:41'
  AND order_id IN
    (SELECT DISTINCT t1.order_id
     FROM Table2 t1
     INNER JOIN table3 t2 ON t1.prod_id = t2.prod_id
     WHERE t2.prod_sku LIKE '%D-600%'
       AND t1.create_dttm > '2013-02-15 08:28:41')

最佳答案

您在 WHERE 子句中使用子查询,这可能是查询执行缓慢的主要原因。尝试使用 JOINS 而不是子查询。

SELECT t1.*
FROM Table1 t1
INNER JOIN Table2 t2 ON T1.order_id = T2.order_id  
                        AND t2.create_dttm > '2013-02-15 08:28:41'
INNER JOIN table3 t3 ON t2.prod_id = t3.prod_id 
                         AND  t3.prod_sku LIKE '%D-600%'          
WHERE complete='Y'
  AND shipped='Y'
  AND active='Y'
  AND create_dttm > '2013-10-10 08:28:41'

还要检查表上的索引。

关于php - 搜索功能带有2年数据并加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22147299/

相关文章:

php - 如何通过单击一个按钮从众多下拉列表中发送数据?

javascript - 形成多行插入的数组格式nodejs-mysql

sql - 如何通过按位运算符操作执行 SQL JOIN?

php - 代码点火器/PHP : Image db storage?

php - 检查值是否已存在不起作用(PHP)

php - Laravel5 `RouteServiceProvider` `should be compatible with` 错误

php - Laravel group by 问题与内联选择语句

c# - 使用 C# 在 MySQL 中更新语句

sql - 查询以根据今天的日期返回具有连续日期的行

c# - 获取第一个表插入的值到第二个表