如何关联两张MySQL表查询指定user_id与ticket_id条件的Ticket表数据
实现方案
方式1:INNER JOIN关联查询(性能更优,推荐使用)
SELECT t.* FROM Ticket t INNER JOIN Ticket_users tu ON t.id = tu.ticket_id WHERE tu.user_id = 15 AND t.id > 8;
通过表别名简化书写,以两张表的票据ID作为关联条件,直接在WHERE子句中同时匹配用户ID、票据ID阈值两个筛选规则,直接返回Ticket表的所有符合要求的字段。
方式2:子查询(逻辑更直观,适合新手理解)
SELECT * FROM Ticket WHERE id > 8 AND id IN ( SELECT ticket_id FROM Ticket_users WHERE user_id = 15 );
先从Ticket_users表中筛选出所有归属用户15的票据ID集合,再在Ticket表中筛选ID大于8、且属于该集合的记录即可。
两种写法执行后都会返回你给出的预期结果。
内容的提问来源于stack exchange,提问作者aziz laroussi
相关产品推荐
相关产品推荐

