从2个表中找到计数

时间:2019-01-23 12:46:46

标签: sql postgresql

我想找到这个计数,但是当我执行查询时,似乎永远被困在“等待查询完成” ...任何想法吗?

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

1 个答案:

答案 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万行!