у меня есть только одна таблица: продуктыSQL совпадает со значением столбца со всеми значениями других столбцов
ID | Product Name | Code 1 | Code 2 | Code 3
********************************************
1 | Phone1 | MM | DD |
2 | Phone2 | DD | | EE
3 | Phone3 | MM | ZZ | EE
4 | Phone4 | XX | |
Я хотел бы:
выбрать все телефоны, которые один из их кодов соответствуют одному из Телефон1.
Другими словами:
, если Phone1 [Код 1] = PHONE2 [код 1] или Phone1 [Код 1] = Phone2 [Код 2] ИЛИ Phone1 [Код 1] = Phone2 [Код 3] ИЛИ Phone1 [Код 1] = Phone3 [Код 1] ... и т.д.
Сравнить значение каждого PHONE1 столбца к значению каждого Phonex столбца. 3x3 условий = 9.
So он должен вернуть: Phone2 и Phone3 (он должен пропускать совпадения, где пусто = пусто).
Моя попытка (SELF JOIN) - Я новичок в этом и не может получить это право:
SELECT `a.Product Name`
FROM products a, products b
WHERE
(`a.Code 1` = `b.Code 1`) OR
(`a.Code 1` = `b.Code 2`) OR
(`a.Code 1` = `b.Code 3`) OR
(`a.Code 2` = `b.Code 1`) OR
(`a.Code 2` = `b.Code 2`) OR
(`a.Code 2` = `b.Code 3`) OR
(`a.Code 3` = `b.Code 1`) OR
(`a.Code 3` = `b.Code 2`) OR
(`a.Code 3` = `b.Code 3`)
AND `a.Product Name` = "Phone1";
Спасибо заранее!
Кроме того, несколько неуместны синтаксиса SQL Server, это выглядит, как он может работать. –
@JoachimIsaksson ах да .. извините .. – JamieD77
Спасибо! Какое лучшее место в этом заявлении поставить, если хотите: «НЕ IN»: выберите все телефоны, которые один из их кодов соответствует одному из кода Phone1 **, НО НЕ ЕСЛИ КОД = DD ** – weedtm