sql语句:一个表和另外两个表的关联语句?

说实话,SQL的写法有点混乱。
两种JOIN的写法放在一起很容易混淆。
让我帮你解决一下。

您的第一个写入方法显式使用 JOIN,并使用 ON 子句来限制连接条件。
这个就很好了,清晰度方面没有问题。
INNER JOIN b ON a.bid=b.id。
说白了,就是在a表中查找出价与b表中的ID匹配的记录。
然后我们对c表做了第二次INNER JOIN,INNER JOIN c ON a.cid=c.id,意思是过滤掉与c表ID匹配的cids。
最后一个 SELECT 是检索所有匹配的字段。

另一种写法是直接使用WHERE来写连接条件,WHERE a.bid=b.id AND a.cid=c.id。
这实际上是隐式JOIN的另一种编写方式。
效果与显式 JOIN 相同,但有时可能会造成阅读混乱。
但是,如果使用 AND 将两个 JOIN 条件连接在一起,则相当于在一个查询中创建两个连接,这可能不是您想要的效果。

我假设您可能想要一起创建一个表来链接表 a、b 和 c。
如果是这种情况,建议您使用一种拼写,不要混合使用。
例如,使用显式 JOIN:
sql 选择 来自 INNER JOIN b ON a.bid = b.id 内连接 c ON a.cid = c.id
这使得阅读起来更加清晰。
或者使用隐式 JOIN:
sql 选择 从a、b、c 其中 a.bid = b.id 并且 a.cid = c.id
但需要注意的是,通常更推荐使用显式JOIN,尤其是当表连接较多时,很容易读取错误。

您确定此搜索是您想要的吗?有时看起来您想做一个笛卡尔积,然后自己添加条件过滤,但实际上您可能只想做一个简单的内连接。
我自己没有运行过这个,但是你可以尝试将 JOIN 和 WHERE 分开,看看结果是否正确。
我记得数据在X左右,但我建议你检查一下。

SQL关联两个数据表后,怎么取其中一个数表的数据呢?