我有一个sql查询,我想知道它是否可以用eloquent编写。 有两个表: Brands和Products。 我想知道某一类产品的品牌。 下面是它目前的样子 \DB::select('select * FROM brands WHERE id in ( select brand_id from products WHERE category_id IN (220, 222, 223) GROUP by brand_id )'); 以上是工作,我需要帮助将其转换为雄辩。
我在工作的项目上使用了一个枢轴表来获取用户的作品。
例句:User::find(1)->works给了我ID为1的用户作品。
问题是,我想用额外的数据对结果进行过滤。
类似于:
User::find(1)->works->pivot->where('active',1)->get();
其中active是我在user_works透视表中设置的列。
这是我的User.php模型的相关部分:
<?php
class User extends Cartalyst\Sentry\Users\Eloquent\User {
public f
我试图将perspectives表加入到offers表中,部分基于经过身份验证的组织id。然而,雄辩者总是试图用"2"的列名而不是2的值来连接。这似乎主要是一个背景问题。
什么,请告诉我,解决办法是什么?
Ye
public function scopeReceived($query)
{
return $query
->where('recipient_id', Auth::user()->organization_id)
->join('perspectives', function ($join) {
我对使用ON和WHERE过滤连接的理解是正确的吗?
WHERE
...will过滤联接表的结果,这意味着LEFT JOIN或RIGHT JOIN不会显示目标表中的所有记录,因为即使WHERE过滤器可能位于另一个表中的某个字段上,这些记录也会被过滤掉。
ON
...can可用作要联接的表的筛选器。我过去认为ON仅用于在连接两个表时比较这两个表之间的字段,但对于要连接的特定表,它也可以充当孤立的WHERE。
当您只连接两个表时,所有这些都无关紧要,但我逐渐意识到,在跨3+表进行非常大的连接时,理解它们之间的差异是至关重要的。
请帮助我以雄辩的口才提出这个问题。一家企业可以有许多类别。
SELECT b.*
FROM businesses b
INNER JOIN categorybusiness cb
ON b.id = cb.business_id
INNER JOIN category c
ON cb.category_id = c.id
WHERE b.location LIKE '%query1%'
AND b.location LIKE '%query2%
如果我运行这个查询:
DB::table('test')
->update(['duma' => 'abc'])
->where('id', 1);
Laravel抛出一个错误:
Call to a member function where() on int
但是测试表所有行duma列都用'abc‘更新
尽管出现了错误,Laravel似乎没有where子句执行update查询。这很危险。
这样可以吗?
我有这样的代码:
UPDATE WORLD_TEST
SET PROGRAMMER = (SELECT (RECURSE_HOUR/360)
FROM WORLD_TEST_PROGRAMMER, WORLD_TEST
WHERE LVL = LVL_PROGRAMMER)
WHERE (SELECT MAX_RECURSE
FROM WORLD_TEST_PROGRAMMER, WORLD_TEST
WHERE LVL = LVL_PROGRAMMER)
>=
(PROG
Postgres允许您使用继承创建表。我们有一个从一个主表继承的1400个表的设计。这些表是为我们的每个供应商的库存。
当我想查询供应商的库存时,我只需查询主表。在运行Explain时,解释说它正在遍历所有的1400个索引和相当多的继承表。这会导致查询运行得非常慢。如果只查询供应商的库存表,则通过查询主表将查询时间缩短到不到50%。
我们在另一个表上有一个连接,它为供应商的合作伙伴供应商提取标识符,我们还想查询他们的库存。示例:
SELECT
(select m2.company from sup.members m2 where m2.id = u.id) as company,
我正在尝试从一个表更新另一个表,只要客户记录存在,我就可以更新,但有一些条目不能。
为了解决这个问题,我尝试运行以下插入
SELECT *
INTO SalBudgetCust
FROM SalBudgetCust_temp
WHERE NOT EXISTS (
SELECT Customer
FROM SalBudgetCust
WHERE Customer = SalBudgetCust_temp.Customer
)
但是我用下面的提示
There is already an object named 'SalBudgetCust' in