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 次 |
| 最近记录: |