1. 程式人生 > >mysql 多表管理 查詢的時候資料為null

mysql 多表管理 查詢的時候資料為null

1.1原sql查詢的時候left join的 某張表的資料為null

  	SELECT
		t.bill_no billNo,
		t.item_code itemCode,
		t.status pickTicketStatus,
		a.status pickTicketActStatus,
		i.status outinvStatus,
		t.flowline flowline,
		b.crossing crossing,
		b.rcv_man rcvMan,
		b.due_date dueDate,
		o.create_date createTime,
		o.process_date processTime
	FROM
				wms_pick_batch b
	LEFT JOIN 	wms_pick_ticket t 		ON b.id = t.pick_batch_id
	LEFT JOIN 	wms_pick_ticket_act a 	ON t.id = a.pick_ticket_id
	LEFT JOIN 	wms_inf_ship_order o 	ON o.bill_no = t.bill_no
	LEFT JOIN 	wms_outinv_detail d 	ON d.pick_batch_code = t.pick_batch_code
	LEFT JOIN 	wms_outinv i 			ON i.load_no = d.load_no
	WHERE 
			o.process_status = 1
		AND a.status != 2
	AND t.bill_no = 'LD000000001024103' ;

1.2 原sql查詢不到資料,因為 a.status  為null  !=2 不成立,修改 

將   AND a.status != 2
    修改為
	 AND  IFNULL(a.status,'') !=2  ;