データベース ビューとして使用するクエリを作成しています。現在、次のようになっています。
SELECT
contact.*,
contact_users.names AS user_names,
contact_status.status_id AS status_id,
status_translation.name AS status_name,
status_translation.lang_id AS lang_id
FROM contacts as contact
LEFT JOIN contact_status AS contact_status ON contact_status.status_id = contact.status
LEFT JOIN contact_status_translation AS status_translation ON status_translation.id = contact.status
LEFT JOIN (
SELECT
contacts_users.contact_id,
string_agg(users.fullname || ', ' || users.id, ' | ') as names
FROM v_contacts_users as contacts_users
LEFT JOIN v_users as users on users.id = contacts_users.user_id
WHERE users.lang_id = status_translation.lang_id
GROUP BY contacts_users.contact_id
) AS contact_users ON contact_users.contact_id = contact.id
WHERE contact.deleted = FALSE
除いてすべてが期待どおりに動作しますWHERE
最後で条件LEFT JOIN
-WHERE users.lang_id = status_translation.lang_id
一部はそれが言うstatus_translation
クエリのこの部分で参照することはできませんか?何故ですか?私は常にこのテーブルをさまざまな方法で参照しようとしましたが、結果は同じです。つまり、それv_users
も翻訳されているため、このテーブルから取得する必要がある結果は 1 つだけです。ヒントをありがとう
以前のリスト エントリを参照する場合は、 と開き括弧のLATERAL
間に挿入します。LEFT JOIN
FROM
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加