带连接的laravel的sql查询(2个表)

vsdwdz23  于 2021-07-24  发布在  Java
关注(0)|答案(4)|浏览(330)

你好,
我想为我的laravel项目创建一个sql查询。给你解释一下我的两张table。
我有一张“产品”表。在这个表中,我有一个主键>products\u id,还有一个“status”列,指定products\u id是“for sale”还是“for rent”。
我还有第二张表“产品标准”。在这个表中,主键是>products\u id我有一个“criteres\u id”列,它必须是=“30”。
因此,我想让“products\u criteres”表中的所有products\u id=“30”和“status”列等于“products”表中的“for sale”。
我试过这样的方法,但没有效果:

SELECT products_main_criteres_history.products_id,date,criteres_id
FROM products_main_criteres_history LEFT JOIN products ON products_main_criteres_history.products_id = products_id
WHERE products_main_criteres_history.criteres_id = 30 
WHERE products.status = "a vendre"
rkttyhzu

rkttyhzu1#

使用此函数查询回调函数

$products_sql = products::where('status','for sale')
                         ->whereIn('products_id',function($q){
                           $q->select('products_id')->from('products_criteres')
                         ->where('criteres_id',30)})->get();
mum43rcc

mum43rcc2#

例子
$products\u sql=products::join('products\u details','products.id','=','products\u details.id')->其中('products.quality','good')->get();
我知道你想如何关联这些表,但它是这样的:创建变量调用关联这些表的表,用table.column创建一个where,然后放入你只想要结果的vaslor

3zwjbxry

3zwjbxry3#

products::where('status','for sale')
->whereIn('products_id',function($query){
   $query->select('products_id')->from('products_criteres')
         ->where('criteres_id',30)
})->get()
l7wslrjt

l7wslrjt4#

此代码返回 productscriteres 那些有 products_id = 30 以及 state = "for sale" :

SELECT pr.id,pr.date,prc.*
FROM products pr inner JOIN products_criteres prc ON pr.id = prc.products_id 
WHERE pr.products_id  = 30 
and pr.status = "for sale"

相关问题