Esta es la sintaxis que se recomienda
   
Código MySQL:
Ver original-              detalle_de_orden.*,  
-              producto.*  
- FROM-  orden  INNER JOIN-  detalle_de_orden  ON-  detalle_de_orden.id_orden =- orden.id_orden 
 
-                     INNER JOIN-  producto  ON-  detalle_de_orden.id_producto =- producto.id_producto ;
 
No acabo de entender lo que quieres pero te doy opciones    
Código MySQL:
Ver original-      ON-  detalle_de_orden.id_producto =- producto.id_producto 
 
- WHERE-  producto.estado ="articulo_ok" OR-  producto.estado ="repuesto_ok";
 
Esto da los id de las ordenes con productos en articulo_ok o repuesto_ok     
Código MySQL:
Ver original-      ON-  detalle_de_orden.id_producto =- producto.id_producto 
 
- WHERE-  producto.estado ="articulo_o_repuesto_no_aprobado";
 
Esto da los id de ordenes con productos en "articulo_o_repuesto_no_aprobado"     
Código MySQL:
Ver original- SELECT-  orden.id_orden ,- orden.fecha  
 
-      ON-  detalle_de_orden.id_producto =- producto.id_producto 
 
- WHERE-  producto.estado ="articulo_o_repuesto_no_aprobado")-  Sbc 
 
-          ON-  orden.id_orden =- Sbc.id_orden 
 
Esto da id y fecha de las ordenes que no tienen ningun producto en "articulo_o_repuesto_no_aprobado" 
Si no es esto intenta entender lo que he hecho y adaptalo a tus necesidades.