如何用Laravel5.1编写此查询
SELECT
(SELECT firstname FROM registration_details a INNER JOIN users b
ON a.id = b.registerid
WHERE c.patientid = b.id ) AS patient,
(SELECT firstname FROM registration_details a INNER JOIN users b
ON a.id = b.registerid
WHERE c.docto
我有三张桌子。
表1:posts //存储用户的twitter帖子
表2:tags //存储twitter帖子中使用的标记
表3:post_tag //枢轴表
现在,我想要的是输入一个tag,例如'yolo‘,得到所有有这个标签的帖子。这很容易,我就这样做了
职类职位:
/**
* Get the tags associated with the post
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function tags()
{
return $this->b
如果我有一个AJAX调用,它返回一个名为$selectArray的数组,它是[foo,bar,foobar],那么如何在Laravel Query Builder中利用它,以便对其进行清理?目前,我有 // Sanitizing Input
// $acceptableSelects is an array of columns in a table. Checks if there are any elements in $selectArray that is invalid
// If the check fails, it return the default array
$sanS
日安!我是拉勒维尔的新手。我尝试了很多方法来做这件事,但是它还是给了我一个错误。我正在尝试将这个sql查询转换成雄辩的
Select t.employee_code,
CASE WHEN t.day = '2017-08-19' THEN t.PRESENT ELSE NULL END AS `2017-08-19`,
CASE WHEN t.day = '2017-08-20' THEN t.PRESENT ELSE NULL END AS `2017-08-20`,
CASE
假设我有这些模型:
用户模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'User';
protected $fillable =
[
'username', 'favoriteCol
假设我有这样的DB结构:
Table A:
-id
-user_id
Table B:
-id
-user_id
Table C:
-id
-user_id
Users:
-id
这是我的用户模型
namespace App\Models;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticat
SELECT *, (
SELECT count(id) FROM order_history oh
WHERE oh.refund_of = oh1.id
) "refunds"
FROM order_history oh1
WHERE `object_name`
NOT LIKE '%refund%'
我需要翻译成雄辩,希望不使用Db::raw
我想以雄辩的口才提出以下问题:
SELECT products.*
FROM products
LEFT JOIN product_translations ON product_translations.id = (
SELECT id
FROM product_translations
WHERE product_id = products.id
AND title IS NOT NULL
AND language IN (?, ?)
ORDER BY FIELD(language, ?, ?)
LIMIT 1
)
WHERE
我有一个完美的搜索查询(我去掉了一些不重要的代码):
$posts = new Post;
if(Input::has('query')) {
// Search for posts with title or tags matching the given criteria
$posts = $posts
->addSelect(DB::raw("MATCH(posts.title) AGAINST (?) as post_score"))
->addSelect(DB::raw("MATC
如果我正在构建一个查询,并添加一个select语句,如果我使用->paginate(50),它将被覆盖(因为->paginate()使用的->count()似乎覆盖了现有的select堆栈)。
即:
$users = User::whereActive(1)->addSelect('some-custom-select-statement')->paginate(10); // wont work. 'some-custom-select-statement' will not be returned
如果我真的这么做了:
$use
我将使用Typeform在NestJS框架上执行这么长的查询。请告诉我如何执行此查询。 select user.id, user.fullName, (select count(*) sendCnt from chat where senderId = user.id), (select count(*) recvCnt from chat where receiverId = user.id) from users user where user.role = 'Admin'
我试图使用得到三个不同列的之和。我想计算出三个科目的总和。例如,“学生”表包含信息,“记录表”具有带有hasmany关系的标记详细信息。
public function getrecord()
{
$student = Student::with('Record')->get();
return $this->success($student);
}
这是我得到的输出:
// Query working for sum but not loading the Relationship (object details).
$student =
如何将查询中的默认字段添加为
SELECT "default_value" as _my_special_virtual_field FROM ...
这个方法并不像我期望的那样工作。
->addSelect(['"default_value" as _my_special_virtual_field'])
我正在尝试重写这个查询:
return DB::select(DB::raw("SELECT COUNT(orders.id), name FROM orders JOIN users ON orders.manager_id = users.id GROUP BY users.id"));
我有一个Order模型,它使用belongsTo()方法链接到另一个表,其中有几个:
public function user()
{
return $this->belongsTo(User::class);
}
public function post()
{
$test = Test::query()
->select("test.id as id", "users.first_name as first_name", "users.last_name as last_name")
->addSelect("test.company_name as company_name", "test.email as email")
->addSelect(DB::raw("DATE
我的控制器中有以下逻辑,它在执行having语句时失败。在没有$type步骤的情况下,数据会按预期显示(因此addSelect按预期工作)。如何使用计算列meters_count通过having进行过滤
错误:
SQLSTATE[42703]: Undefined column: 7 ERROR: column "meters_count" does not exist
代码:
// Get all customers visible to this user
$query = Site::with('customer.logo', 'mainConta
广告和文档之间有着多到多的关系:以下是三个表格:
广告
文档
document_advert。
如何从广告中获取author,从文档中获取path?第一次尝试不会抛出任何错误,但查询似乎是空的,我从调试器中无法理解这一点:
在sql中,我的目标是这样的:
SELECT d.path, a.author
FROM document_advert da
JOIN document d
JOIN advert a
WHERE da.advert_id = 1
AND da.document_id = d.id
我的尝试(我在AdvertRepository):
public funct
我有一个名为siblings的函数,它获取用户的所有兄弟姐妹。
select siblings(id) as `siblings` from users where id = 1
我可以以雄辩的方式访问这个函数
User::where('id', 1)->first([DB::raw(siblings(id) as `siblings`)]->siblings;
我想通过自定义属性使siblings可用。
我将siblings添加到$appends数组中
我还在我的getSiblingsAttribute模型中创建了User方法,如
public function
我正试图返回一个带有子查询的帖子,其中包括一张点票和一张选票。我可以通过使用原始查询来实现这一点。
然而,这样做意味着我不能再访问帖子模型的关系,例如评论。
是否有更多雄辩的方法,我可以这样做,以保持模型的关系?
还是有更好的方法可以让我继续做这件事?很想听听你会怎么做。
$post = DB::select(
"SELECT post.*,
(SELECT COUNT(*) FROM posts_votes
WHERE type = 1
AND post_id = posts.id)
AS up_
我正在尝试实现与PostgreSQL的TypeScript和TypeOrm编写的项目中的pg_trgm模块搜索。SQL对我有效的方法如下所示:
SELECT t, similarity(t, 'word') AS sml
FROM test_trgm
WHERE t % 'word'
ORDER BY sml DESC, t;
但是当我开始将它集成到我的构建器中时,我意识到我不能保护select语句不受SQL注入的影响,因为TypeOrm不提供在任何select方法(如SelectQueryBuilder::addSelect、SelectQuery