嵌套查询在实际项目中有很多应用案例,以下是一些常见的例子:
SELECT * FROM users WHERE role_id IN (
SELECT role_id FROM roles WHERE permission = 'admin'
);
这个查询会返回所有具有管理员权限的用户。SELECT product_id FROM products WHERE product_id IN (
SELECT product_id FROM order_items WHERE user_id = 123 AND purchase_date > '2023-01-01'
);
这个查询会返回用户ID为123且在2023年1月1日之后购买过的商品ID。SELECT friend_id FROM friendships WHERE user_id = 123 AND friend_id IN (
SELECT user_id FROM friendships WHERE friend_id = 456
);
这个查询会返回用户123和用户456的共同好友ID。SELECT product_id FROM products WHERE stock_quantity < 10 AND supplier_id IN (
SELECT supplier_id FROM deliveries WHERE delivery_date < DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
);
这个查询会返回库存低于10且供应商在过去一个月内有延迟交货记录的商品ID。SELECT product_id FROM recommendations WHERE user_id = 123 AND product_id IN (
SELECT product_id FROM browsing_history WHERE user_id = 123 ORDER BY visit_count DESC LIMIT 10
);
这个查询会返回用户ID为123在过去10次浏览中访问次数最多的前10个商品ID。SELECT employee_id, salary FROM employees WHERE department_id = 5 AND salary > (
SELECT AVG(salary) FROM employees WHERE department_id = 5
);
这个查询会返回部门ID为5且薪资高于该部门平均水平的员工ID和薪资。SELECT user_id FROM logs WHERE resource_id = 'resource123' AND access_time BETWEEN '2023-04-01 00:00:00' AND '2023-04-01 23:59:59' AND user_id IN (
SELECT DISTINCT user_id FROM logs WHERE access_time BETWEEN '2023-04-01 00:00:00' AND '2023-04-01 23:59:59'
);
这个查询会返回在2023年4月1日全天频繁访问资源ID为’resource123’的用户ID。通过合理使用嵌套查询,可以有效地解决许多实际项目中的复杂数据查询需求。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。