2014-09-19 71 views
0

嗨,大家好,我想知道为什么这个查询不起作用。我很熟练使用SQL :)多栏和表sql选择

$sql = "select o.item_id, o.order_id, o.qty, o.price 
     from " . mainframe()->table('order_items') . " o 
     left join " . $wpdb->posts . " p 
      on o.item_id = p.id 
     where o.item_type = 'product' 
     and (select j.user_id from ". mainframe()->table('orders') ." j where j.id = o.order_id)"; 

我需要得到用户的ID上的其它表和加入其他结果

编辑:问题是,它不返回USER_ID(没有给出错误)

+0

什么样的错误/输出给它? – Erik 2014-09-19 14:56:25

+0

没有错误!没有结果。用户标识为空任何其他参数填充 – voodo 2014-09-19 14:57:47

+0

您没有选择'user_id'。也许这就是原因。 – 2014-09-19 14:58:20

回答

0
$sql = "select o.item_id, o.order_id, o.qty, o.price, j.user_id 
     from " . mainframe()->table('order_items') . " o 
     left join " . $wpdb->posts . " p 
      on o.item_id = p.id 
      left join ". mainframe()->table('orders') ." j onj.id = o.order_id 
     where o.item_type = 'product'"; 
+0

你很简单:谢谢 – voodo 2014-09-19 15:09:45

1

试试这个:

$sql = "select 
      j.user_id as user_id, 
      o.item_id as item_id, 
      o.order_id as order_id, 
      o.qty as qty, 
      o.price as price 
      from " . mainframe()->table('order_items') . " o 
      left join " . $wpdb->posts . " p 
       on o.item_id = p.id 
      where 
        o.item_type = 'product' 
       and (
        select j.user_id 
        from ". mainframe()->table('orders') ." j 
        where j.id = o.order_id 
       )";