MySQL:将SELECT保存到变量

时间:2014-05-21 16:18:17

标签: mysql sql

我有这样的事情:

SELECT FROM table
WHERE field NOT IN (
    SELECT FROM other_table ... //SECOND QUERY
)

问题:我不希望SECOND QUERY的每一行都执行table。我可以将QUERY 2结果保存到某个变量吗?

2 个答案:

答案 0 :(得分:2)

您可以通过运行EXPLAIN并查看其是DEPENDENT SUBQUERY还是SUBQUERY来检查查询是否会针对每一行运行。将依赖于每一行。

根据您希望将其保存到变量'我猜它不会依赖。

如果要将结果集保存到变量'你需要使用临时表。在这种情况下,没有必要。

答案 1 :(得分:1)

LEFT NULL JOIN可能会快得多。

SELECT *
  FROM table AS t
  LEFT JOIN other_table AS ot ON ot.field = t.field
    WHERE ot.field IS NULL