0

簡単なアクセス/mySQL に関する質問があります。以下の形式のマッピングテーブルがあります。

ID      Category_A      Category_B      Category_C      Team
 1              a               b                         T1
 2              a                               d         T2

Category_A、Category_B、Category_C を含む 2 番目のテーブルがあります。マッピングテーブルに基づいて、チームの値を 2 番目のテーブルに結合したいと考えています。私の問題は、空白がある場合 (ID=2、Category_B など)、Category_B の値に関係なく、Category_A=a および Category_C=d を含むすべての行に T2 を割り当てる必要があることです。

このタイプのマッピングは実行できますか?

あなたの助けに感謝します!

4

1 に答える 1

1

MS Access では、次のようなものが必要になると思います。

SELECT t.ID, m.Team
FROM Team t
 INNER JOIN Mapping m
      ON (m.Category_C = t.Category_C) 
     AND (m.Category_B = t.Category_B) 
     AND (m.Category_A = t.Category_A)
WHERE m.Category_C Is Not Null
     AND m.Category_B Is Not Null 
     AND m.Category_A Is Not Null

UNION ALL
SELECT t.ID, m.Team
FROM Team t
 INNER JOIN Mapping m
      ON  (m.Category_B = t.Category_B) 
     AND (m.Category_A = t.Category_A)
WHERE m.Category_C Is Null
     AND m.Category_B Is Not Null 
     AND m.Category_A Is Not Null

UNION ALL
SELECT t.ID, m.Team
FROM Team t
 INNER JOIN Mapping m
      ON (m.Category_C = t.Category_C)
     AND (m.Category_A = t.Category_A)
WHERE m.Category_C Is Not Null
     AND m.Category_B Is Null 
     AND m.Category_A Is Not Null

UNION ALL
SELECT t.ID, m.Team
FROM Team t
 INNER JOIN Mapping m
      ON (m.Category_C = t.Category_C) 
     AND (m.Category_B = t.Category_B) 
WHERE m.Category_C Is Not Null
     AND m.Category_B Is Not Null 
     AND m.Category_A Is Null
于 2012-06-19T13:16:48.243 に答える