Bil*_*ill 4 mysql union select
我想在SELECT中使用UNION两列,而在第三列中使用别名.
我还需要检索与WHERE子句匹配的数据,然后按别名列(MLS_SORT)排序.
这个,以及我尝试过的变体都不起作用.
SELECT *
FROM
(SELECT MLS_AGENT_ID AS MLS_SORT FROM mlsdata)
UNION
(SELECT MLS_OFFICE_ID AS MLS_SORT FROM mlsdata)
WHERE (MLS_AGENT_ID = $agent_narid) OR (MLS_OFFICE_ID = $office_narid)
ORDER BY MLS_SORT
Run Code Online (Sandbox Code Playgroud)
这部分确实有效,并使用正确的值创建MLS_SORT别名,但我无法弄清楚如何将结果限制为上面的WHERE子句:
(SELECT MLS_AGENT_ID AS MLS_SORT FROM mlsdata)
UNION
(SELECT MLS_OFFICE_ID AS MLS_SORT FROM mlsdata)
Run Code Online (Sandbox Code Playgroud)
我至少走在正确的道路上,或者这不是正确的方法吗?
谢谢你的帮助.
诀窍是理解UNION的语法:查询UNION查询
我想你想要:
SELECT MLS_SORT
FROM
(
SELECT MLS_AGENT_ID AS MLS_SORT
FROM mlsdata
WHERE MLS_AGENT_ID = $agent_narid
UNION
SELECT MLS_OFFICE_ID AS MLS_SORT
FROM mlsdata
WHERE MLS_OFFICE_ID = $office_narid
)
ORDER BY MLS_SORT
Run Code Online (Sandbox Code Playgroud)
要将两个ID子集放入单个结果集中,请对它们进行排序.
但是,这整个查询看起来会给出一个两行结果集 - 一个代理行,另一个代表办公室.那是你要的吗?
您的逻辑有效地将代理ID和办公室ID编号转换为单个结果集.这在你的申请中有意义吗?
| 归档时间: |
|
| 查看次数: |
4271 次 |
| 最近记录: |