jquery - Laraver 数据库查询
问题描述
我是 Laravel 的新手,我不知道这里发生了什么。我用两个表做了一个简单的连接查询,但我得到了三重结果。我试过了distinct()
,orderBy()
(出现错误)......有人可以告诉我这里发生了什么
Laravel 查询:
public function getArtForCom($id) {
$articles = Article::select('kup_art.rbr as id', 'kup_art.sifra as article_id', 'kup_art.naziv as article_name', 'kup_art.grupa as group_id', 'kup_art.grupa_naziv as group_name', 'ro_stanje.koli as count', 'ro_stanje.v_cije as price')
->join('ro_stanje', 'kup_art.sifra', 'ro_stanje.sifra')
->where('kupac', $id)
->get();
return response()->json($articles);
}
结果是:
[
{
"id": 1,
"article_id": "000140",
"article_name": "KECAP BF",
"group_id": "04",
"group_name": "KECEPI ",
"count": "130.000",
"price": "3.590"
},
{
"id": 2,
"article_id": "000407",
"article_name": "SWISS ROLS",
"group_id": "13",
"group_name": "INDUSTRIJSKI ROLAT",
"count": "485.000",
"price": ".790"
},
{
"id": 1,
"article_id": "000140",
"article_name": "KECAP BF",
"group_id": "04",
"group_name": "KECEPI",
"count": "266.000",
"price": "3.050"
},
{
"id": 2,
"article_id": "000407",
"article_name": "SWISS ROLS",
"group_id": "13",
"group_name": "INDUSTRIJSKI ROLAT",
"count": "7204.000",
"price": ".490"
},
{
"id": 1,
"article_id": "000140",
"article_name": "KECAP BF",
"group_id": "04",
"group_name": "KECEPI ",
"count": "3.000",
"price": "3.215"
},
{
"id": 2,
"article_id": "000407",
"article_name": "SWISS ROLS",
"group_id": "13",
"group_name": "INDUSTRIJSKI ROLAT",
"count": "17.000",
"price": ".490"
},
{
"id": 1,
"article_id": "000140",
"article_name": "KECAP BF",
"group_id": "04",
"group_name": "KECEPI ",
"count": ".000",
"price": "3.215"
},
{
"id": 2,
"article_id": "000407",
"article_name": "SWISS ROLS",
"group_id": "13",
"group_name": "INDUSTRIJSKI ROLAT",
"count": "69.000",
"price": ".490"
},
{
"id": 1,
"article_id": "000140",
"article_name": "KECAP BF",
"group_id": "04",
"group_name": "KECEPI ",
"count": "2.000",
"price": "3.215"
},
{
"id": 2,
"article_id": "000407",
"article_name": "SWISS ROLS",
"group_id": "13",
"group_name": "INDUSTRIJSKI ROLAT",
"count": "48.000",
"price": ".490"
},
{
"id": 2,
"article_id": "000407",
"article_name": "SWISS ROLS",
"group_id": "13",
"group_name": "INDUSTRIJSKI ROLAT",
"count": "30.000",
"price": ".488"
}
]
解决方案
你需要在这里 groupBy 通用键,kup_art.sifra
public function getArtForCom($id) {
$articles = Article::select('kup_art.rbr as id', 'kup_art.sifra as article_id',
'kup_art.naziv as article_name', 'kup_art.grupa as group_id', 'kup_art.grupa_naziv as
group_name', 'ro_stanje.koli as count', 'ro_stanje.v_cije as price')
->join('ro_stanje', 'kup_art.sifra', 'ro_stanje.sifra')
->where('kupac', $id)
->groupBy('kup_art.sifra')
->get();
return response()->json($articles);
}
推荐阅读
- sql - 函数将行类型作为单个值返回,而不是每个字段一个值
- c++ - 在 void 函数中修改初始化整数后打印它的新值?
- c# - ASP.NET Core JWTAuthentication 和授权角色声明
- colors - 代表灰度颜色需要多少个 RGB 值组合?
- c++ - 用于 wxWidgets 的 Visual Studio 2019:链接问题
- python - 使用 scipy 在 python 中将 sin 曲线拟合到 xslx 数据的问题
- sed - 使用 sed 替换生成文件中 json 中的值
- symfony5 - 在 symfony 5 中创建数据库时遇到错误(找不到驱动程序)
- python - 如何为发送不和谐消息的成员分配角色?
- angular - 如何在 Angular 中配置服务?