Ребята, я схожу с ума от этого ...
У меня есть две таблицы:
1. UniquePrefixes
2. Operator
UniquePrefixes содержит только поле «Префикс».
Пример:
Prefix
------
1
12
123
12345
В таблице «Оператор» содержится много данных, включая поле «Префикс».
Пример:
..... Prefix ......
----- ------ ------
1
12
Что я пытаюсь достичь:
(pseudo)
foreach unique 'prefix'
select the 'Prefix' from 'Operator' if is equal to a unique 'prefix'
OR
select the 'closest' match that fits into that
Пример:
unique prefix = 1 (exists on 'Operator' so I am fine)
unique prefix = 12345 (doesnt exist on 'Operator' so I must get '12')
То, что я сделал до сих пор:
SELECT
*
FROM
UniquePrefixes
LEFT OUTER JOIN Operator
on
Operator.Prefix =(
SELECT
Operator.Prefix
FROM
Operator,
UniquePrefixes
WHERE
length(Operator.Prefix)<= UniquePrefixes.prefix
AND UniquePrefixes.prefix LIKE(
Operator.Prefix || '%'
)
ORDER BY
Operator.Prefix DESC
LIMIT 1
)
Но это не работает, так как подвыбор выполняется первым (очевидно): (
Я надеюсь, что это имеет смысл и будет очень признателен за любую помощь