2012-09-08 5 views
-1

У меня есть три таблицы:SQL условные отношения

Product(columns: Id, ProductType, ProductId, ...) 

Apple(columns: Id, ProductType(will be always 1), ...) 

Orange(columns: Id, ProductType(will be always 2), ...) 

Если Product а имеет ProductType 1, я хочу, чтобы связать его с Apple таблицы, если 2, то к Orange таблице. Возможно ли это в SQL?

+0

Какой SQL? (SQL Server, MySQL и т. Д.) – hims056

+0

какой двигатель (rdbms)? – Randy

+0

MS SQL ................... – karaxuna

ответ

1

В MySQL, вы можете сделать:

SELECT * 
FROM Product p 
JOIN Apple a ON (p.ProductType = 1 AND p.ProductId = a.Id) 
JOIN Orange o ON (p.ProductType = 2 AND p.ProductId = o.Id) 
+0

Я знаю, как писать запрос в этом случае. Я хочу сделать это с помощью внешних ключей. Спасибо, в любом случае – karaxuna

1

вы можете сделать объединение всех подтипов, а затем внешнее соединение.

Смежные вопросы