【发布时间】:2012-01-11 22:52:54
【问题描述】:
我有以下查询,我设计该查询是为了根据客户端数据编译来自多个视图的数据。
SELECT
vw_clients.client_id,
name,
exts,
vms,
ivrs,
queues,
conf10,
conf20,
conf30
FROM
vw_clients,
vw_exts,
vw_vms,
vw_ivrs,
vw_queues,
vw_conf10,
vw_conf20,
vw_conf30
WHERE
vw_clients.client_id = vw_exts.client_id AND
vw_clients.client_id = vw_vms.client_id AND
vw_clients.client_id = vw_ivrs.client_id AND
vw_clients.client_id = vw_queues.client_id AND
vw_clients.client_id = vw_conf10.client_id AND
vw_clients.client_id = vw_conf20.client_id AND
vw_clients.client_id = vw_conf30.client_id;
只要每个视图中都有与 vw_clients 中的记录相关的记录,查询就可以正常工作。但是,我需要修改它以使用左连接,以便它返回来自 vm_clients 的所有记录,并且只返回来自其他视图的那些具有这些客户端记录的记录。
我已经阅读了关于左连接的信息,但最多我只找到了关于加入一个或两个表的信息——但我需要加入 8 个。我是否在 vw_clients.client_id 上对相应的 client_id 字段进行左连接所有的意见?它的语法是什么?
如果有任何帮助,我们将不胜感激。我非常接近解决这个问题,我认为这是最后一块拼图!
非常感谢。
【问题讨论】:
-
您正在使用隐式连接——您可能希望改用显式连接(即
... left join on <condition> ...)。