伙计们,我对这个很生气......我有两张桌子:
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
)
但它不起作用,因为子选择首先被执行(显然):(
我希望这是有道理的,并且非常感谢任何帮助