我有兩個表名Table 1
和Table 2
。這兩個表都包含一個名爲address
的列。 Table 1
包含約1200條記錄,而Table 2
還有另外100萬條商店記錄。SQL查詢獲得表A和表B中的記錄數
現在,我想要做的是找到Table 1
中的記錄數,其中有一個匹配地址的行也存在於Table 2
中。
我是新來的SQL - 有誰可以請告訴我如何獲得上述行數?
我有兩個表名Table 1
和Table 2
。這兩個表都包含一個名爲address
的列。 Table 1
包含約1200條記錄,而Table 2
還有另外100萬條商店記錄。SQL查詢獲得表A和表B中的記錄數
現在,我想要做的是找到Table 1
中的記錄數,其中有一個匹配地址的行也存在於Table 2
中。
我是新來的SQL - 有誰可以請告訴我如何獲得上述行數?
Select Count(*) from Table1 Where address in (select address from Table2)
select count(*) from Table1
INNER JOIN Table2 on Table1.address = Table2.address
您需要一個JOIN。喜歡的東西
SELECT COUNT(*) FROM table2 INNER JOIN table1 ON table2.address = table1.address;
注: 如果這是一個頻繁的查詢,你應該把索引在地址欄兩表所示。
試試這個
SELECT COIUNT(*) FRO Table1 WHERE address IN(SELECT address from table2)
爲什麼它會起作用的解釋將使它更多的是一個答案... – 2013-04-26 11:58:22
我還是會建議在這種情況下加入。這就是他們的目的,並且通常比子選擇快得多。 – luksch 2013-04-26 13:11:05