我想找到这个计数,但是当我执行查询时,似乎永远被困在“等待查询完成” ...任何想法吗?
SELECT (
SELECT COUNT(*)
FROM accidents,"Vechicles"
where "Date_of_accident"<'2010-01-01' and "Urban_or_Rural" like 'Urban' and "Age_Band_Of_Driver" like '26 - 35'
) AS count1
答案 0 :(得分:0)
因为查询将从第一个表中选择与您的条件匹配的每一行,然后为每行从第二个表中选择与您的条件匹配的每一行。最终可能会导致大量的行最终被选中。
这是一个例子:
CREATE TABLE #dumb (id INT);
CREATE TABLE #dumber (id INT);
INSERT INTO #dumb SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3;
INSERT INTO #dumber SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3;
SELECT * FROM #dumb, #dumber;
在每个表中3行,但查询选择3 * 3 = 9行。现在想象每个表中有300万行!