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

いずれかの列からユーザーIDを取得する単一行のフレンドシップデータベーススキーマ

    このクエリは、このSQLフィドルの例

    SELECT f.FriendId AS FriendId
       , u.Name AS FriendName
    FROM FriendTable AS f
    INNER JOIN UserAccount AS u ON f.FriendId = u.UserId
    WHERE f.UserId = 5
    
    UNION
    
    SELECT f.UserId AS FriendId
       , u.Name AS FriendName
    FROM FriendTable AS f
    INNER JOIN UserAccount AS u ON f.UserId = u.UserId
    WHERE f.FriendId = 5
    

    UNION 重複を削除し、このクエリが友人の1つのレコード、またはコメントで言及した2つのレコードの友情の両方で機能するようにします。ただし、2番目のレコードには、1つのレコードだけでは取得できない新しい情報が格納されていないため、2つのレコードの友情は必要ありません。




    1. ヒントとDISABLE_OPTIMIZED_NESTED_LOOPを使用する

    2. MySQLとCodeIgniterでのMatchandAgainstの使用

    3. rewriteBatchedStatements=trueを使用したMySQLおよびJDBC

    4. ビューから行を削除すると、ベーステーブルから行が削除されますか-MySQL?