MySQL查询:使用UNION并将行号作为SELECT的一部分
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL查询:使用UNION并将行号作为SELECT的一部分,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1225字,纯文字阅读大概需要2分钟。
内容图文
![MySQL查询:使用UNION并将行号作为SELECT的一部分](/upload/InfoBanner/zyjiaocheng/887/e03d2dbb07ff48da91abc673518c7a94.jpg)
我有一个联合查询,如下所示:
(SELECT t.id, t.name, c.company AS owner, t.creation_date AS date, t.notes FROM tool t, client c WHERE t.id_customer = '15' AND t.trash_flag = '1') UNION (SELECT f.id, f.name, CONCAT(m.first_name, ' ', m.last_name) AS owner, f.date, f.notes FROM file f, meta m WHERE ((f.acl = 0) OR (f.acl = 1 AND '1' = TRUE) OR (f.acl = 2 AND f.id = '7')) AND f.id = '15' AND f.trash_flag = '1' AND m.user_id = f.id_user) ORDER BY 'name' 'ASC' LIMIT 0,20
一切正常,但我有两个问题:
>如何在整个结果集中添加一列以提供行号
>我可以不使用UNION来执行此操作吗?高级加入?
感谢您的宝贵时间MySQL专家!
解决方法:
我现在无法对其进行严格测试,但是从我发现的结果来看,以下方法可能有效:
SQL语句
SELECT @rownum := @rownum + 1 rownum
, t.*
FROM (
(SELECT t.id
, t.name
, c.company AS owner
, t.creation_date AS date
, t.notes
FROM tool t
, client c
WHERE t.id_customer = '15'
AND t.trash_flag = '1'
) UNION (
SELECT f.id
, f.name
, CONCAT(m.first_name, ' ', m.last_name) AS owner
, f.date
, f.notes
FROM file f
, meta m
WHERE ((f.acl = 0) OR (f.acl = 1 AND '1' = TRUE) OR (f.acl = 2 AND f.id = '7')) AND f.id = '15' AND f.trash_flag = '1' AND m.user_id = f.id_user)
)
) t
, (SELECT @rownum := 0) r
ORDER BY
'name' ASC
LIMIT 0, 20
内容总结
以上是互联网集市为您收集整理的MySQL查询:使用UNION并将行号作为SELECT的一部分全部内容,希望文章能够帮你解决MySQL查询:使用UNION并将行号作为SELECT的一部分所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。