表的自连接问题,请教各位大侠!
有这样一个表WorkOrder,结构如下
min_no varchar(10), //表单No
max_no varchar(10), //值类型
max_val varchar(100) //实际值
数据如下:
min_no max_no max_val
130523 18870 电气
130523 18871 1A磨煤机
130523 18872 2009-03-12
130523 18873 张明
130523 18874 夜班
130524 18870 电气
130524 18871 1A磨煤机
130524 18872 2009-03-13
130524 18873 张明
130524 18874 夜班
130525 18870 电气
130525 18871 1A磨煤机
130525 18872 2009-03-14
130525 18873 张明
130525 18874 夜班
我想根据姓名(18873)=‘张明’和日期(18872)>'2009-3-1' 查这个表,怎么查!
select distinct a.min_no from WorkOrder a
inner join WorkOrder b on a.min_no = b.min_no and b.max_no='18872' and b.max_val>'2009-03-1'
inner join WorkOrder c on b.min_no = c.min_no and c.max_no='18873' and c.max_val='张明'
这样写对吗? 有更好的方法吗?