hel*_*lle 6 postgresql union distinct
大家好!
我有一个SQL(见上文),我想知道我怎么能确保我不会得到关于名称的双打.如果名称出现在第一个中选择它是主要名称,则应在以下选择中忽略.
"SELECT name, id, 'place' AS tablename FROM places WHERE lower(name) LIKE '".strtolower($needle)."%'"
."UNION SELECT name, id, 'community' AS tablename FROM communities WHERE lower(name) LIKE '".strtolower($needle)."%'"
."UNION SELECT name, id, 'district' AS tablename FROM districts WHERE lower(name) LIKE '".strtolower($needle)."%'"
."UNION SELECT name, id, 'region' AS tablename FROM regions WHERE lower(name) LIKE '".strtolower($needle)."%'"
."UNION SELECT name, id, 'province' AS tablename FROM provinces WHERE lower(name) LIKE '".strtolower($needle)."%'"
."ORDER BY name LIMIT 10"
Run Code Online (Sandbox Code Playgroud)
这是我的SQL.
你需要更多信息吗?
谢谢
SELECT DISTINCT ON (name) name, id, tablename
FROM (
SELECT name, id, 'place' AS ...
UNION ...
UNION ...
UNION ...
UNION ...) AS subQuery
ORDER BY name LIMIT 10
Run Code Online (Sandbox Code Playgroud)
只需指定name
通过将查询用作子查询来区分.
在不同的期间执行限制和排序,否则不同的可能会丢弃欺骗并且不以正确的排序顺序放弃完整的10行.
归档时间: |
|
查看次数: |
3252 次 |
最近记录: |