sql >> データベース >  >> RDS >> Mysql

MySQLとejabberdによる効率的な外部名簿

    IIUC、テーブルrosterusers eJabberdのPOVから読み取り専用です サーバーアプリ。これにより、viewに置き換えるのが簡単になります 、これにより、自分の友達テーブルの1行から必要な2行が作成されます。

    あなた自身の友情テーブルの構造を知らないので、私はあなたに完全なコードを与えることはできませんが、これが私が疑似SQLとして考えたものです

    CREATE VIEW rosterusers AS SELECT * FROM (
        SELECT 
            selfuser.name AS username, 
            frienduser.jid AS jid,
            -- ....,
            selfuser.jid AS jid_as_id
        FROM
            users AS selfuser
            INNER JOIN friendships ON ....
            INNER JOIN users AS frienduser ON ...
        UNION SELECT 
            frienduser.name AS username, 
            selfuser.jid AS jid,
            -- ....,
            frienduser.jid AS jid_as_id
        FROM
            users AS selfuser
            INNER JOIN friendships ON ....
            INNER JOIN users AS frienduser ON ...
    );
    

    そして

    SELECT
        username, jid, subscription, ask, server, type
    FROM rosterusers
    WHERE jid_as_id='[email protected]'
    

    UNIONの各部分から1つずつ2行を表示する必要があります ビュー内




    1. PostgreSQLインデックスを最大限に活用する

    2. Codeigniterの移行ライブラリでトリガーを作成する方法

    3. Javaでタイムスタンプを日付に変換する

    4. SQL Server T-SQL関数の使用方法SUM:5つのユースケース