可以用union,试试这个(我没有测试): select Tab1.姓名, Tab2.数量, Tab4.名称 from Tab1 join Tab2 on Tab1.处方id = Tab2.处方id join Tab4 on Tab2.药品id = Tab4.药品id union select Tab1.姓名, Tab3.数量, Tab5.名称 from Tab1 join Tab3 on Tab1.处方id = Tab3.处方id join Tab5 on Tab3.药品id = Tab5.药品id
select * from tab4 where 药品id in (select distinct 药品id from tab2 a left join tab1 b on a.处方ID=b.处方ID) union select * from tab5 where 药品id in (select distinct 药品id from tab3 c left join tab1 d on c.处方ID=d.处方ID)
谢谢楼上的两位大哥 请问那个where写在哪啊? 就是where 姓名=‘张三’
谢谢楼上的两位大哥 请问那个where写在哪啊? 就是where 姓名=‘张三’
select * from Tab1 join Tab2 on Tab1.处方id=Tab2.处方id join Tab4 on Tab2.药品id=Tab4.药品id where 姓名 ='张三' union select * from Tab1 join Tab3 on Tab1.处方id=Tab3.处方id join Tab5 on Tab3.药品id=Tab5.药品id where 姓名 ='张三'
select Tab1.姓名, Tab2.数量, Tab4.名称
from Tab1
join Tab2 on Tab1.处方id = Tab2.处方id
join Tab4 on Tab2.药品id = Tab4.药品id
union
select Tab1.姓名, Tab3.数量, Tab5.名称
from Tab1
join Tab3 on Tab1.处方id = Tab3.处方id
join Tab5 on Tab3.药品id = Tab5.药品id
union
select * from tab5 where 药品id in (select distinct 药品id from tab3 c left join tab1 d on c.处方ID=d.处方ID)
就是where 姓名=‘张三’
就是where 姓名=‘张三’
join Tab2 on Tab1.处方id=Tab2.处方id
join Tab4 on Tab2.药品id=Tab4.药品id
where 姓名 ='张三'
union
select * from Tab1
join Tab3 on Tab1.处方id=Tab3.处方id
join Tab5 on Tab3.药品id=Tab5.药品id
where 姓名 ='张三'