Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 有没有可能把这个翻译过来;加入;及;作为「;查询Laravel PDO函数?_Mysql_Sql_Laravel_Eloquent_Query Builder - Fatal编程技术网

Mysql 有没有可能把这个翻译过来;加入;及;作为「;查询Laravel PDO函数?

Mysql 有没有可能把这个翻译过来;加入;及;作为「;查询Laravel PDO函数?,mysql,sql,laravel,eloquent,query-builder,Mysql,Sql,Laravel,Eloquent,Query Builder,我正在努力将此SQL查询转换为Laravel PDO查询。有人知道我怎么做吗?(尤其是'AS'语句和连接中的命名) 查询: SELECT models.name as model_name, models.brand as model_brand, t.name as trim_name, t.extra_information as trim_extra_information, t

我正在努力将此SQL查询转换为Laravel PDO查询。有人知道我怎么做吗?(尤其是
'AS'
语句和连接中的命名)

查询:

SELECT models.name         as model_name,
       models.brand        as model_brand,
       t.name              as trim_name,
       t.extra_information as trim_extra_information,
       t.price             as trim_price,
       t.popular           as trim_is_popular,
       s.type              as specification_type,
       s.value             as specification_value,
       o.name              as option_name,
       o.default           as option_default,
       o.remaining         as option_remaining,
       c.name              as color_name,
       c.hex_code          as color_hex_code,
       c.price_extra       as color_price_extra,
       ll.months           as lease_length_months,
       ll.default          as lease_length_default,
       ll.price_extra      as lease_length_price_extra,
       eo.name             as extra_option_name,
       eo.description      as extra_option_description,
       eo.price_total      as extra_option_price_total,
       eo.price_extra      as extra_option_price_extra,
       m.kilometers        as mileage_kilometers,
       m.default           as mileage_default,
       m.price_extra       as mileage_price_extra,
       m.price_extra_km    as mileage_price_extra_km

FROM `models`
         INNER JOIN trims t on models.id = t.model_id
         INNER JOIN specifications s on t.id = s.trim_id
         INNER JOIN options o on t.id = o.trim_id
         INNER JOIN colors c on t.id = c.trim_id
         INNER JOIN lease_lengths ll on t.id = ll.trim_id
         INNER JOIN extra_options eo on ll.id = eo.lease_length_id
         INNER JOIN mileages m on ll.id = m.lease_length_id
直接使用
join()
select()
方法如下:

Model::join('trims t','models.id','=','t.Model_id'))
->联接('s's','t.id','=','s.trim_id')
...
->挑选(
“models.name作为model_name”,
“模型品牌作为模型品牌”,
“t.name作为trim_name”,
“t.额外信息作为修剪额外信息”,
“t.价格作为调整价格”,
“t.像trim一样受欢迎”,
...
)
->得到()
直接使用
join()
select()
方法如下:

Model::join('trims t','models.id','=','t.Model_id'))
->联接('s's','t.id','=','s.trim_id')
...
->挑选(
“models.name作为model_name”,
“模型品牌作为模型品牌”,
“t.name作为trim_name”,
“t.额外信息作为修剪额外信息”,
“t.价格作为调整价格”,
“t.像trim一样受欢迎”,
...
)
->得到()

如果使用名为
model
的雄辩模型类,它会自动设置为查询
模型

然后,您可以使用以下命令覆盖
模型
类中的默认查询:

public function newQuery()
{
    return parent::newQuery()
        ->select(
            'models.name as model_name',
            ...
            'mileages.price_extra_km as mileage_price_extra_km'
        )
        ->join('trims', 'models.id', 'trims.model_id')
        ...
        ->join('mileages', 'lease_lengths.id', 'mileages.lease_length_id');
在我留下的三个圆点的地方多填几行,你就可以上路了


注意,我删除了您的表别名。您可以将表别名为SQL查询代码中的表,但使用雄辩的查询生成器时更简单、可读性更强。

如果您使用的是名为
model
的雄辩模型类,它会自动设置为查询
models

然后,您可以使用以下命令覆盖
模型
类中的默认查询:

public function newQuery()
{
    return parent::newQuery()
        ->select(
            'models.name as model_name',
            ...
            'mileages.price_extra_km as mileage_price_extra_km'
        )
        ->join('trims', 'models.id', 'trims.model_id')
        ...
        ->join('mileages', 'lease_lengths.id', 'mileages.lease_length_id');
在我留下的三个圆点的地方多填几行,你就可以上路了


注意,我删除了您的表别名。您可以将表别名为SQL查询代码中的表,但使用雄辩的查询生成器时更简单、更易读。

只需使用原始查询即可。但是
'AS'
是您的最小问题-在laravel中没有什么特别之处。@PaulSpiegel如果我想让我的团队维护它,原始查询就不是那么好了。你是说这在Laravel函数中是可能的吗?直接使用
select('models.name as model_name'、'..'、'..')
并使用
join()
只需使用原始查询即可。但是
'AS'
是您的最小问题-在laravel中没有什么特别之处。@PaulSpiegel如果我想让我的团队维护它,原始查询就不是那么好了。你是说这在Laravel函数中是可能的吗?直接使用
select('models.name as model_name'、'..'、'..')
并使用
join()