相关疑难解决方法(0)

Laravel Fluent Query Builder加入子查询

好的经过几个小时的研究并仍在使用DB :: select我不得不问这个问题.因为我即将把我的电脑拉下来;).

我想得到用户的最后一个输入(基于时间戳).我可以使用原始sql执行此操作

SELECT  c.*, p.*
FROM    users c INNER JOIN
(
  SELECT  user_id,
          MAX(created_at) MaxDate
  FROM    `catch-text`
  GROUP BY user_id
 ) MaxDates ON c.id = MaxDates.user_id INNER JOIN
    `catch-text` p ON   MaxDates.user_id = p.user_id
     AND MaxDates.MaxDate = p.created_at
Run Code Online (Sandbox Code Playgroud)

我从另一个帖子此查询这里的计算器.

我已尝试使用Laravel中的流畅查询构建器完成所有操作,但没有成功.

我知道手册说你可以这样做:

DB::table('users')
    ->join('contacts', function($join)
    {
        $join->on('users.id', '=', 'contacts.user_id')->orOn(...);
    })
    ->get();
Run Code Online (Sandbox Code Playgroud)

但这没有多大帮助,因为我不知道如何在那里使用子查询?谁可以点亮我的一天?

laravel laravel-4

65
推荐指数
5
解决办法
7万
查看次数

MySQL LEFT JOIN,GROUP BY和ORDER BY不按要求工作

我有一张桌子

'products' => ('product_id', 'name', 'description') 
Run Code Online (Sandbox Code Playgroud)

和一张桌子

'product_price' => ('product_price_id', 'product_id', 'price', 'date_updated')
Run Code Online (Sandbox Code Playgroud)

我想执行类似的查询

SELECT `p`.*, `pp`.`price` 
FROM `products` `p` 
LEFT JOIN `product_price` `pp` ON `pp`.`product_id` = `p`.`product_id`
GROUP BY `p`.`product_id` 
ORDER BY `pp`.`date_updated` DESC
Run Code Online (Sandbox Code Playgroud)

你可以猜测价格经常变化,我需要拿出最新的价格.麻烦的是我无法弄清楚如何订购LEFT JOINed表.我尝试使用MAX()之类的一些GROUP BY函数,但这样只会拉出列而不是行.

谢谢.

mysql

11
推荐指数
1
解决办法
3万
查看次数

标签 统计

laravel ×1

laravel-4 ×1

mysql ×1