首页 > 解决方案 > 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"
  }
]

标签: jquerylaraveleloquent

解决方案


你需要在这里 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);
 }

推荐阅读