Из следующего кода:
SELECT
farm_products.id as ID,
farm_products.product as Product1,
shop_products.product as Product2
FROM
farm_products,
shop_products,
shop_farm
WHERE
farm_products.id = shop_farm.farm_id and
shop_farm.farm_id = shop_products.id and
farm_products.product != shop_products.product;
Я получаю следующий вывод:
+-------+----------+---------+
|ID | Product1 | Product2|
+-------+----------+---------+
|06 | 'Apple' | 'Grape' |
+-------+----------+---------+
|06 | 'Orange' | 'Grape' |
+-------+----------+---------+
|06 | 'Pear' | 'Apple' |
+-------+----------+---------+
|07 | 'Apple' | 'Pear' |
+-------+----------+---------+
|08 | 'Kiwi' | 'Grape' |
+-------+----------+---------+
|08 | 'Grape' | 'Orange |
+-------+----------+---------+
Я хочу иметь таблицу, в которой только первая встречающаяся строка каждого
ID
Другими словами, я хочу вывод, который выглядит следующим образом:
+-------+----------+---------+
|ID | Product1 | Product2|
+-------+----------+---------+
|06 | 'Apple' | 'Grape' |
+-------+----------+---------+
|07 | 'Apple' | 'Pear' |
+-------+----------+---------+
|08 | 'Kiwi' | 'Grape' |
+-------+----------+---------+
Я пытался использовать DISTINCT , чтобы удалить все повторяющиеся идентификаторы,но это (очевидно) не сработало.Я хочу попытаться избежать вложенных запросов и сделать код как можно более простым.
Кто-нибудь может помочь?