1

、、およびのImage3 つの列を持つテーブルがあります。他のテーブルから含まれます (この例では、テーブルとテーブルです)。 、およびの 3 つの列を持つテーブル。表には、 、 の 3 つの列が含まれます。これは製品のデータです:IdNameRefIdIdCategoryProductCategoryIdNameProductIdProductIdName

Id                                     Name    
659543D6-1A0D-4151-B94C-F44CCDA752B5   Product1
5C1A5A2F-4579-41D2-8FAE-93EF71451285   Product2     
2C35A651-1681-4E5E-9F0C-315169BDFA1D   Product3

Categoryのデータ:

Id                                     Name        ProductId     
F3FFF612-1D6D-4447-B472-2486C4893CDD   Category1   659543D6-1A0D-4151-B94C-F44CCDA752B5
4A2FF39D-13E0-4365-8DEA-7FAD6D6DF405   Category2   659543D6-1A0D-4151-B94C-F44CCDA752B5
599AEA59-8A85-409C-9026-7E4313AF523D   Category3   659543D6-1A0D-4151-B94C-F44CCDA752B5

画像のデータ:

Id                                     Name     RefId     
BDD396A2-37A7-4B20-B8C5-8EF2CD58D4C0   Image1   659543D6-1A0D-4151-B94C-F44CCDA752B5
7CDA01FF-B98A-4CDC-A92B-0E31A9CDCD20   Image2   F3FFF612-1D6D-4447-B472-2486C4893CDD

例として、このデータを参照してください。Image1は製品の画像で、Image2はカテゴリの画像です。そして私の質問:

    SELECT Category.Id, Category.Name, Product.Name, Image.Name 
    FROM Category 
    INNER JOIN Product
    ON Category.ProductId = Product.Id
    INNER JOIN Image
    ON Category.Id = Image.RefId
 -- ON Product.Id = Image.RefId 

このクエリでは、Image2またはImage1のみを取得します。私の問題は、1 つのクエリだけで 2 つの画像を取得する方法です。

4

2 に答える 2

2
SELECT Category.Id, Category.Name, Product.Name, I1.Name, I2.Name
  FROM Category 
  INNER JOIN Product
  ON Category.ProductId = Product.Id
  LEFT OUTER JOIN Image I1
  ON Category.Id = I1.RefId
  LEFT OUTER JOIN Image I2
  ON Product.Id = I2.RefId
于 2013-07-18T08:25:31.840 に答える