同表关联查询需求:获取items表符合指定条件的关联数据
同表关联查询实现方案
表数据说明
现有items表,包含以下数据:
作为主表(a)的数据:
id , parent_id 1 2 3 4 1 5 2
作为关联表(b)的目标数据(对应表中id=4的记录):
b_id,b_parent_id 4 , 1
查询需求
执行同表关联查询,筛选出满足b.id=4且a.parent_id IS NULL的结果,预期输出:
id , b_parent_id 1 ,1 2 3
实现SQL语句
使用左连接(LEFT JOIN)可以保留主表中符合条件的所有行,同时关联目标记录:
SELECT a.id, b.b_parent_id FROM items a LEFT JOIN items b ON a.id = b.b_parent_id AND b.id = 4 WHERE a.parent_id IS NULL;
语句说明
- 左连接确保
a中所有parent_id为null的行都被保留 - 关联条件中指定
b.id=4,仅匹配表中id为4的那条记录 - 当
a.id等于b.b_parent_id(即a.id=1)时,会带出b.b_parent_id的值,其余符合条件的a行对应的b字段为空,与预期结果一致
内容的提问来源于stack exchange,提问作者sami eisa
相关产品推荐
相关产品推荐

