代码之家  ›  专栏  ›  技术社区  ›  Martney Acha

laravel中的内部连接缺少P

  •  1
  • Martney Acha  · 技术社区  · 7 年前

    我需要将两个表product\u price和trade\u通道结合起来,当我使用内部连接时,
    product_price的ID为remove。

    这是我的密码

    DB::table('product_price')->where('product_id',$id)->where('action','customer_price')
             ->join('customers','product_price.action_id','=','customers.id')
             ->get();
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   Gautam Patadiya    7 年前

    一个好的做法是选择一个您实际上想要使用的列,而不需要所有列。

    假设在这种情况下,您需要product\u price table的所有列,并且只需要customer\u price table中的customer id,那么您可以这样做:

    DB::table('product_price')
    ->select(['product_price.*','customer_price.id AS customer_id'])
    ->where('product_price.product_id',$id)
    ->where('product_price.action','customer_price')
    ->join('customers','product_price.action_id','=','customers.id')
    ->get();
    

    您可以选择任何列,但最好使用联接表列的别名,在这种情况下,它是customer\u price,所以如果两个表的列名称相同,就不会产生混淆。

    祝你好运

        2
  •  1
  •   R . dwj    7 年前

    尝试

    DB::table('product_price')
    ->select('*','product_price.id AS product_price_id')
    ->where('product_id',$id)
    ->where('action','customer_price')
    ->join('customers','product_price.action_id','=','customers.id')
    ->get();
    

    product\u price id将替换为customers id,因此只需使用其他名称打印product\u price id。 希望能有所帮助