質問で説明した内容に基づいて、特定のテンプレートのすべてのアセットを取得する必要があります。テーブル構造を作成しましたが、テーブルにリレーション制約を定義していませんでしたが、クエリの作成中にそれらを使用しました。
Assetテーブルをテーブルに結合できAssetForPresentationます。AssetForPresentation テーブルを介して、PresentationとPositionテーブルを結合できます。との関係はTemplate、テーブルを介して作成できPositionます。したがって、TemplateテーブルをAssetテーブルに結合して、一致するすべてのレコードを取得します。
以下のリンクでデモを見ることができます。
SQL Fiddle でデモを表示するには、ここをクリックしてください。
それが役立つことを願っています。
脚本:
CREATE TABLE Presentation
(
        id          INT         NOT NULL AUTO_INCREMENT
    ,   name        VARCHAR(30) NOT NULL
    ,   PRIMARY KEY (id)
);
CREATE TABLE Template
(
        id          INT         NOT NULL AUTO_INCREMENT
    ,   name        VARCHAR(30) NOT NULL
    ,   PRIMARY KEY (id)
);
CREATE TABLE Position
(
        id          INT         NOT NULL AUTO_INCREMENT
    ,   zorder      INT         NOT NULL 
    ,   fk_template INT         NOT NULL 
    ,   PRIMARY KEY (id)
);
CREATE TABLE Asset
(
        id          INT         NOT NULL AUTO_INCREMENT
    ,   name        VARCHAR(30) NOT NULL
    ,   description VARCHAR(30) NOT NULL
    ,   PRIMARY KEY (id)
);
CREATE TABLE AssetForPresentation
(
        fk_asset        INT         NOT NULL
    ,   fk_presentation INT         NOT NULL
    ,   fk_position     INT         NOT NULL
);
INSERT INTO Presentation (name) VALUES
    ('presenation 1'),
    ('presenation 2');
INSERT INTO Template (name) VALUES
    ('template 1'),
    ('template 2');
INSERT INTO Position (zorder, fk_template) VALUES
    (1, 1),
    (2, 2);
INSERT INTO Asset (name, description) VALUES
    ('asset 1', 'asset description 1'),
    ('asset 2', 'asset description 2');
INSERT INTO AssetForPresentation (fk_asset, fk_presentation, fk_position) 
VALUES
    (1, 1, 1),
    (1, 2, 1),
    (2, 2, 1),
    (2, 2, 2);
SELECT              *
FROM                Asset A
RIGHT OUTER JOIN    AssetForPresentation AP
ON                  A.id = AP.fk_asset
RIGHT OUTER JOIN    Presentation P
ON                  P.id = AP.fk_presentation
RIGHT OUTER JOIN    Position PO
ON                  PO.id = AP.fk_position
RIGHT OUTER JOIN    Template T
ON                  T.id = PO.fk_template
WHERE               T.id = 1;
出力:
ID NAME    DESCRIPTION         FK_ASSET FK_PRESENTATION FK_POSITION ZORDER FK_TEMPLATE
-- ------- ------------------- -------- --------------- ----------- ------ -----------
1  asset 1 asset description 1    1            1            1          1        1
1  asset 1 asset description 1    1            2            1          1        1
2  asset 2 asset description 2    2            2            1          1        1