我有两个如下表:

1)关联帐户

mysql> select * from tblaffiliatesaccounts limit 12;
+----+-------------+-------+------------+
| id | affiliateid | relid | lastpaid   |
+----+-------------+-------+------------+
|  1 |           2 |   444 | 2019-11-01 |
+----+-------------+-------+------------+


affiliateid:会员ID,
relid:产品ID
lastpaid:最近支付的日期

2)待定

mysql> select * from tblaffiliatespending limit 12;
+----+----------+--------+--------------+
| id | affaccid | amount | clearingdate |
+----+----------+--------+--------------+
|  1 |        1 |   0.03 | 2019-12-01   |
+----+----------+--------+--------------+


仿射:这是tblaffiliatesaccounts的ID值

现在我知道了affiliateid=2,我想查询出所有tblaffiliatespending行是否符合affacc的affiliateid=2条件。

Capsule怎么办?和MySQL CLI commnad?我想知道两种比较方式。

我只知道如何在一个表中查询。

胶囊是Laravel包装的简单包装。

最佳答案

我不确定您的确切挣扎是什么,但是我相信您需要类似的东西:

SELECT *
FROM tblaffiliatespending s
INNER JOIN tblaffiliatesaccounts a ON (a.id = s.affaccid AND a.affiliateid = 2);


至于使用Capsule,我相信这应该工作:

Capsule\DB::table('tblaffiliatespending s')->select('*')->join('tblaffiliatesaccounts a', 'a.id', '=', 's.affaccid')->where("a.affiliateid", "2")->get();


免责声明:我从未使用过Capsule,而是指一个过时的文档。我不确定Capsule查询是否可以正常工作,但绝对可以。如果有问题,请给我评论。还请记住,由于条件在联接中,MySQL查询更好,并且在大多数情况下将更快地工作。我不知道如何在Capsule中执行此操作的正确方法,因此我选择了where子句。

如果您还有其他问题,请告诉我。

09-12 15:28