【发布时间】:2019-01-10 11:00:35
【问题描述】:
我的代码
$result=DB::table('receipts')
->join('dealer_m','receipts.ToDealerID','dealer_m.DealerID')
->join('dealer_m','receipts.FromDealerID','dealer_m.DealerID')
->join('product_m','receipts.ProductID','product_m.ProductID')->get();
餐桌收据
Id | FromDealerId | ToDealerId | ProductId
---+---------------+-------------+------------
1 1 2 1
2 1 3 1
3 3 1 1
餐桌经销商_m
DealerId | DealerName
---------+-----------
1 Dealer One
2 Dealer Two
3 Dealer Three
表product_m
ProductId | ProductName
----------+-----------
1 Product One
2 Product Two
预期输出
Id | FromDealerId | ToDealerId | ProductId | FromDealerName | ToDealerName | ProductName
---+---------------+-------------+------------+----------------+--------------+------------
1 1 2 1 Dealer One Dealer Two Product One
2 1 3 1 Dealer One Dealer Three Product One
3 3 1 1 Dealer Three Dealer One Product One
当我运行我的代码时,它得到一个错误
SQLSTATE[42000]:语法错误或访问冲突:1066 不唯一 表/别名:'dealer_m'(SQL:从'receipts'内部连接中选择'' 'receipts' 上的'dealer_m'。'ToDealerID' = `dealer_m'.'DealerID' 内部 在 'receipts' 上加入 'dealer_m'。'FromDealerID' = 'dealer_m'.'DealerID' 'receipts' 上的内部连接 'product_m'。'ProductID' = 'product_m'.'ProductID')
这个怎么解决???
谢谢
【问题讨论】:
-
您需要为连接设置别名。以
join('dealer_m AS dealer1')为例。