私はクライアントデータに基づいていくつかのビューからデータをコンパイルするように設計しました。MySQLは複数のビューで結合を残しました
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のすべてのレコードと、それらのクライアントのレコードを持つ他のビューのレコードのみが返されます。
私は左ジョインについては読んだことがありますが、たいていは1つまたは2つのテーブルに参加することに関する情報しか見つかりませんでしたが、私は8に参加する必要があります。vw_clients.client_idを対応するclient_idフィールドすべてのビューで?その構文は何ですか?
ご協力いただきありがとうございます。私はこの問題を解決することにとても近く、これはパズルの最後の部分だと思います!
多くのありがとうございます。
暗黙的な結合を使用しています。代わりに明示的な結合を使用することができます(つまり、「... left join on ...」)。 –