I don't have a database available to check. But it is obvious that the following doesn't make sense:
FROM `ps_order_detail` od
LEFT JOIN `ps_order_detail` od ON o.`id_order` = od.`id_order`
There is no need to insert ps_order_detail twice and you never include a ps_order table or define an "o" shortcut.
Also you can't write
WHERE od.`id_order` =1166,1167,
it should be "where id_order=1166 or id_order=1167". Alternatively you could use an array.