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

別のテーブルで並べ替えられたmysqlテーブルから値を取得する方法は?

    ref_typesテーブルにReferenceType列があることに加えて、対応するテーブルの実際のIDを外部キー

    //ref_types table
    ID Article_ID ReferenceType Reference_ID
    1  1          book          1
    2  1          article       1
    3  1          article       2
    4  1          book          2
    

    次に、WHILEループを回避し、MySQLにJOINを使用して作業を任せることができます:

    SELECT CONCAT('record ', rt.ID, ': ',
      COALESCE(ar.Article_Title, tr.Thesis_Title, br.Book_Title))
    FROM ref_types rt
    LEFT JOIN article_refs ar
      ON rt.ReferenceType = 'article' AND ar.ID = rt.Reference_ID
    LEFT JOIN book_refs br
      ON rt.ReferenceType = 'book' AND br.ID = rt.Reference_ID
    LEFT JOIN thesis_refs tr 
      ON rt.ReferenceType = 'thesis' AND tr.ID = rt.Reference_ID
    

    結果が得られます:

    record 1: book1
    record 2: article1
    record 3: article2
    record 4: book2
    


    1. GoogleChartApiは日時の値を利用します

    2. CSVをMySQLにロードする方法は?

    3. pdoは一重引用符をエスケープする準備をします

    4. 関数を使用した外部適用のパフォーマンス