みんな私はこれに腹を立てています...私は2つのテーブルを持っています:
1. UniquePrefixes
2. Operator
UniquePrefixesには、「プレフィックス」フィールドのみが含まれます。例:
Prefix
------
1
12
123
12345
'Operator'テーブルには、'Prefix'フィールドを含む多くのデータがあります。例:
..... 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
)
ただし、副選択が最初に実行されるため(明らかに)、機能しません:(
これが理にかなっていて、どんな助けにも本当に感謝することを願っています