【发布时间】:2011-10-15 04:50:10
【问题描述】:
我正在尝试加入 3 张桌子。项目、状态、客户。查询的 GOAL 应导致当前状态为“已接收”的所有项目。我还试图获取客户端名称以显示在结果表中。
这些表有共同的外键:client_ID、status_ID。
到目前为止,这是我的查询。我正在努力更好地理解连接。如果您可以提供有关我做错了什么的 cmets 以及将非常受欢迎的示例代码。
SELECT clients.clientName,
clients.Client_ID,
projects.Client_ID,
projects.projectNumber,
projects.projectName,
projects.expectedDate,
statuses.Status_ID,
statuses.status
FROM projects,
clients,
statuses
LEFT JOIN clients on projects.Client_ID = clients.Client_ID
LEFT JOIN statuses on projects.Status_ID = statuses.Status_ID
WHERE status = 'Received'
【问题讨论】:
-
你能给我们提供你数据库的所有 3 个表结构吗?
-
您正在混合使用 ANSI-89(FROM 子句中的逗号)和 ANSI-92 JOIN(JOIN 语法)语法。如果 WHERE 中没有标准,则 ANSI-89 内容是笛卡尔积。