我只有一個表的所有值匹配:產品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的其中一個代碼。
換句話說:
如果電話1 [代碼1] =電話2 [代碼1]或電話1 [代碼1] =電話2 [代碼2]或電話1 [代碼1] =電話2 [代碼3]或電話1 [代碼1] =電話3 [代碼1] ...等
每個電話1列的值比較每個PhoneX列的值。 3x3條件=總共9。
所以它應該返回: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
謝謝!如果我想要的話,在這個聲明中最好放置'NOT IN'這樣的地方:選擇所有的手機其中一個代碼與Phone1的代碼中的一個匹配**但是如果代碼= DD ** – weedtm