2

私が持っているとしましょう

テーブルstudent_dataとフィールドは

╔====╦============╦============╗
║ID║CREATED_BY║UPDATED_BY║
╠====╬============╬============╣
║1║1║2║
╚====╩============╩============╝

テーブルcreator_updaterとフィールドは

╔====╦================╗
║ID║名前║
╠====╬================╣
║1║クリエーター║
║2║セカンドクリエーター║
╚====╩================╝

だから私はそれが表示されるように正確なコードは何ですか?

student_data

╔====╦===============╦======================
║ID║CREATED_BY_ID║LATEST_UPDATED_BY_ID║
╠====╬===============╬======================
║1║クリエーター║セカンドクリエーター║
╚====╩===============╩======================

結合構文を試しましたが、違うようです

4

1 に答える 1

4

creator_updater2つの列の名前を取得できるように、テーブルを2回結合する必要があります。

SELECT  a.id,
        b.name created_by_id,
        c.name latest_updated_by_id
FROM    student_data a
        INNER JOIN creator_updater b
            ON a.created_by = b.id
        INNER JOIN creator_updater c
            ON a.updated_by = c.id

ただし、上記のコードは、列の1つがNULL可能である場合は機能しません。その場合は、LEFT JOIN代わりにを使用してください。INNER JOIN

SELECT  a.id,
        b.name created_by_id,
        c.name latest_updated_by_id
FROM    student_data a
        LEFT JOIN creator_updater b
            ON a.created_by = b.id
        LEFT JOIN creator_updater c
            ON a.updated_by = c.id

結合の詳細については

于 2012-12-09T14:56:55.783 に答える