检查 table 中的所有记录是否已包含在主 table 中
Checking that all records from a table has been included into the main table
我是 SQL 的新手,但我一直在练习 JOIN。我想检查另一个 table(small_table
) 的所有记录是否已包含在我当前的 table(base_table
).
中
例如:
SELECT * FROM base_table WHERE year = 2015 AND month = 3 AND day = 4
会return给我一组基于今天日期的记录。 small_table
是相同的结构。我想 return INNER JOIN
的计数(比较所有列)并查看它是否等于 small_table
中的记录数。这将证明根据今天的日期,small_table
中的每个 row/record 都包含在 base_table
中。
我不需要使用JOIN
但这只是我想到的第一个方法。我对其他方法持开放态度。我在创建此查询时遇到问题。
A = SELECT * FROM small_table;
B = SELECT * FROM base_table WHERE year = 2015 AND month = 3 AND day = 4;
SELECT COUNT(*) FROM A INNER JOIN B;
我认为有几种方法可以做到这一点。
假设您不想单独查看所有记录,我认为 COUNT 是可行的方法。
如果要使用 JOIN,则需要在某种标识符上连接两个 table。
SELECT COUNT(s.*)
FROM small_table s
INNER JOIN base_table b
ON s.ID = b.ID
WHERE b.year = 2015 AND b.month = 3 AND b.day = 4;
上面的 ID 是您的主键。
或者,您可以使用 UNION 语句,我认为这是更好的方法。
SELECT 'Small Table' as Table_Name, COUNT(*)
FROM small_table
UNION
SELECT 'Base Table', COUNT(*)
FROM base_table
WHERE year = 2015 AND month = 3 AND day = 4;
我希望这会显示如下内容:
Table_Name | COUNT(*)
Small Table | 200
Base Table | 200
其中 200 是每个 table 的计数。
希望对您有所帮助!
我是 SQL 的新手,但我一直在练习 JOIN。我想检查另一个 table(small_table
) 的所有记录是否已包含在我当前的 table(base_table
).
例如:
SELECT * FROM base_table WHERE year = 2015 AND month = 3 AND day = 4
会return给我一组基于今天日期的记录。 small_table
是相同的结构。我想 return INNER JOIN
的计数(比较所有列)并查看它是否等于 small_table
中的记录数。这将证明根据今天的日期,small_table
中的每个 row/record 都包含在 base_table
中。
我不需要使用JOIN
但这只是我想到的第一个方法。我对其他方法持开放态度。我在创建此查询时遇到问题。
A = SELECT * FROM small_table;
B = SELECT * FROM base_table WHERE year = 2015 AND month = 3 AND day = 4;
SELECT COUNT(*) FROM A INNER JOIN B;
我认为有几种方法可以做到这一点。 假设您不想单独查看所有记录,我认为 COUNT 是可行的方法。 如果要使用 JOIN,则需要在某种标识符上连接两个 table。
SELECT COUNT(s.*)
FROM small_table s
INNER JOIN base_table b
ON s.ID = b.ID
WHERE b.year = 2015 AND b.month = 3 AND b.day = 4;
上面的 ID 是您的主键。
或者,您可以使用 UNION 语句,我认为这是更好的方法。
SELECT 'Small Table' as Table_Name, COUNT(*)
FROM small_table
UNION
SELECT 'Base Table', COUNT(*)
FROM base_table
WHERE year = 2015 AND month = 3 AND day = 4;
我希望这会显示如下内容:
Table_Name | COUNT(*)
Small Table | 200
Base Table | 200
其中 200 是每个 table 的计数。
希望对您有所帮助!