我最近在办公室的一次讨论中遇到了一个问题,
SELECT t1.id, t1.name, t1.date AS date_filter,
(SELECT t2.column_x
FROM table_2 t2
WHERE t2.date = date_filter LIMIT 1
) AS column_x
FROM table_1 t1
WHERE t1.category_id = 10
ORDER BY t1.date
LIMIT 10;
子查询返回第二个表中与第一个表中的日期匹配的列值。 这个查询没有以优化的速度运行,你能告诉我什么是即兴表演的方法吗?
干杯
答案 0 :(得分:0)
这两个表加SHOW CREATE TABLE
EXPLAIN SELECT ...
所需索引:
t1: INDEX(category_id, date)
t2: INDEX(date)
如果没有ORDER BY
,则子查询没有意义 - 其中" 1"你想要一排吗?