1

与えられているのは次のデータベース構造です。

製品:

- id
- model
- manufacturerID
- subcontractorID

一部のメーカーは下請け業者でもあるため、manufacturerIDとsubcontractorIDは1つの同じテーブルを参照しています。

メーカー:

- id
- name

さて、これらの列の両方を選択したい場合、どうすればよいですか?

私はこのようなことを試みました...

SELECT p.model, m.name AS Manufacturer, m.name AS Subcontractor
FROM Product AS p
LEFT JOIN Manufacturers AS m ON p.manufacturerID = m.id
LEFT JOIN m ON p.subcontractorID = m.id

...しかし、両方の列値の1つしか取得できませんでした。

4

2 に答える 2

1

閉じる-Manufacturerテーブルを2回結合する必要があります。

SELECT 
     p.model, manufacturer.name AS Manufacturer, 
     subcontractor.name AS Subcontractor
FROM Product AS p LEFT JOIN 
     Manufacturers AS manufacturer  
     ON p.manufacturerID = manufacturer.id LEFT JOIN 
     Manufacturers AS subcontractor 
     ON p.subcontractorID = subcontractor.id
于 2012-04-23T11:47:59.660 に答える
0

これを試してください:

LEFT JOIN Manufacturers AS mman ON p.manufacturerID = mman.id
LEFT JOIN Manufacturers AS msub ON p.subcontractorID = msub.id
于 2012-04-23T11:49:45.373 に答える