我有 3 个表关系,分别称为 tblCluster、tblServer 和 tblDatabase。服务器位于集群下,数据库位于服务器下。 tblCluster中的PK是ClusterName。 tblServer中的Pk是ServerName,FK是ClusterName。 tblDatabase 中的 PK 是 DatabaseName,FK 是 Servername。如果我想查看 ClusterName 下/来自 ClusterName 的所有 ServerName 和 DatabaseName 是 Cluster5。我应该写这样的查询
SELECT tblCluster.ClusterName, tblServerName.ServerName, tblDatabase.DatabaseName
FROM tblCluster
JOIN tblServer
ON tblCluster.ClusterName = tblServer.ClusterName
INNER JOIN tblDatabase
ON tblServer.ServerName = tblDatabase.ServerName
WHERE tblCluster.ClusterName = Cluster5;
如果找到服务器名称,即使数据库为空,我仍然希望它显示数据库名称为空的结果表。
最佳答案
您是否尝试过使用LEFT JOIN
而不是INNER JOIN
- 这通常是此类要求的解决方案。 Look here获取包含一些示例的更详细说明。
关于mysql - 不确定 SQL Select 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13445773/