mysql 查询一个记录表,状态等于1 并且还有等于2的所有数据

请问各位大神,有个 sql 查询的问题:
log_id 是可重复字段,
查询出 logs 表中,同一个 log_id 的 status = 1, 同时 status = 2,的所有 log_id,并排重

单独查询 status=1 或 = 2 的数据有 80w + 条,数据太大,无法查询其中一个条件出来再循环判断;

chapin
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案
SELECT * FROM
    (SELECT DISTINCT log_id FROM logs WHERE status = 1) AS a
LEFT JOIN
    (SELECT DISTINCT log_id FROM logs WHERE status = 2) AS b ON b.log_id = a.log_id
WHERE b.log_id IS NOT NULL

效率会很低吧,不如单独建一个表,每个 log_id 一条数据,加两个字段记录状态。

4年前 评论
讨论数量: 1
SELECT * FROM
    (SELECT DISTINCT log_id FROM logs WHERE status = 1) AS a
LEFT JOIN
    (SELECT DISTINCT log_id FROM logs WHERE status = 2) AS b ON b.log_id = a.log_id
WHERE b.log_id IS NOT NULL

效率会很低吧,不如单独建一个表,每个 log_id 一条数据,加两个字段记录状态。

4年前 评论