当我使用内连接时,我需要将两个表product_price和trade_channels组合在一起,
product_price的ID将被删除。
这是我的代码
DB::table('product_price')->where('product_id',$id)->where('action','customer_price')
->join('customers','product_price.action_id','=','customers.id')
->get();
答案 0 :(得分:2)
一个好的做法是选择一个您真正想要使用的列而不需要所有列。
假设在这种情况下,您需要product_price表的所有列,并且只需要来自customer_price表的客户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_price,因此如果两个表都具有相同的名称列,则不会产生混淆。
祝你好运
答案 1 :(得分:1)
试
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_price id将替换为customers id,因此只需使用其他名称打印product_price id。 希望它有所帮助