第一张表 意见表 第二张表 意见表 第三张表 拼在一起 现在需要写一个语句,把两张表拼在一起 第一张表是报修单,字段有 报修人 bxr,报修日期 bxrq,报修内容描述 bxnrms,报修状态 tbzt,报修单号 bxdh 第二张表是意见单,字段有 意见建议人 yjjyr,建议日期jyrq,建议内容描述 jjnr,建议状态 jyzt,意见建议单号 yjjydh 第一张表与第二张表相同的部分是报修人 bxr = 意见建议人 yjjyr,报修日期 bxrq=意见建议日期 jyrq 但是现在这个拼在一起的表会有几个情况: 1、当这个填写的人,既填写了报修单也填写了意见单时,拼在一起的表一定是报修人 bxr = 意见建议人 yjjyr,报修日期 bxrq=意见建议日期 jyrq 2、当这个人没有填写报修单或者意见单时,这个表格只会显示一个部分的内容,另一个部分的表格为空 要求:1、要按照报修日期和建议日期排序 2、如果两个表格都填写了,一定要保证报修人 bxr = 意见建议人 yjjyr,报修日期 bxrq=意见建议日期 jyrq 3、如果只写了一个表格,那么也要让他按照时间排序,即bxrq报修日期,jyrq 意见建议日期 之前我写了语句是可以呈现第一种情况的,但是无法正确的显示单独只填写一个表的情况,而且日期排序也很凌乱,领导说最好使用union而且什么if判断之类的 (SELECT * FROM bb_hqb_db_tb d LEFT JOIN bb_hqb_yjjyb_tb y ON d.bxr=y.yjjyr order by d.bxrq desc) union (SELECT * FROM bb_hqb_db_tb d right JOIN bb_hqb_yjjyb_tb y ON d.bxr=y.yjjyr order by y.jyrq desc) |