mysql select union_MySQL查询:使用UNION并将行号作为SELECT的一...

这篇博客探讨了一种SQL查询方法,用于从工具表和文件表中选取特定客户的数据。查询结合了UNION操作来合并结果,并使用LIMIT限制返回的记录数。通过对 acl 字段的条件判断,实现了不同权限级别的数据筛选。最后,根据名称排序并显示前20条记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我现在无法对其进行严格测试,但是从我发现的结果来看,以下方法可能有效:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值