SQL WHERE和AND子句

Din*_*o55 -1 sql

当我们进行这样的查询时

SELECT COUNT(*)
FROM A, B, C
WHERE A.type = B.type
AND B.cost = C.cost
Run Code Online (Sandbox Code Playgroud)

关于结果表我们能说些什么?结果表的大小是多少?如果A有5行,B有8行,C有7行

编辑:我可以得到一些回应而不是记下来吗?我是SQL新手,需要帮助.

EDIT2:我想要做什么 -了解WHERE和AND子句如何工作以及为什么结果表有8行

你是如何解决这个问题的 - 我正在阅读我的教科书并在其中提出问题

我试图解决它 -我试过Google并阅读各种帖子,但大多数只是显示如何做而不是解释什么实际上开心

Nil*_*was 5

计数将是常用值的数量.例如,考虑这个小例子

DECLARE @A Table(Val1 Int)
Insert Into @A Values(1),(2),(3),(4),(5)


DECLARE @B Table(Val2 Int)
Insert Into @B Values(1),(2),(3),(4),(5),(6)


DECLARE @C Table(Val3 Int)
Insert Into @C Values(1),(2),(3),(4),(5),(6),(7)


SELECT COUNT(*)
FROM @A a, @B b, @C c
WHERE a.Val1 = b.Val2
AND b.Val2 = c.Val3
Run Code Online (Sandbox Code Playgroud)

结果是5.因为a.Val1 = b.Val2有5个共同元素即1,2 3,4,5.现在b.Val2 = c.Val3有6个共同元素即1,2,3,4,5,6.

然后这两个结果集将相互作用并将尝试获得交叉值,即常见值,即1,2,3,4,5.因此计数为5