Laravel DB orderby

Status
Niet open voor verdere reacties.

ido435

Gebruiker
Lid geworden
10 nov 2010
Berichten
674
Goedendag,

Ik ben bezig met een query te schrijven voor mijn web applicatie.
Voor deze web applicatie heb ik een query nodig die een inner join doet een een group by.
PHP:
SELECT a.*, i.*
            FROM articles a
            JOIN images i ON a.Id=i.ArticleId  
            WHERE a.Name LIKE '%25%'
            GROUP BY a.Id  
            ORDER BY `i`.`ImgUrl` ASC
Deze query hoeft niets meer aan verandert te worden (hij doet wat hij moet doen).

Nu wil ik deze query in laravel gebruiken maar dan krijg ik een foutmelding en zegt de documentatie van laravel

PHP:
  return DB::table('articles')
            ->join('images', 'images.ArticleId', '=', 'articles.Id')
            ->select('articles.*', 'images.*')
            ->groupBy('articles.Id')
            ->get();

Maar nu krijg ik deze foutmelding
"SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'Id' in group statement is ambiguous (SQL: select `articles`.*, `images`.* from `articles` inner join `images` on `images`.`ArticleId` = `articles`.`Id` group by `Id`) ◀"

Wie kan mij helpen met dit probleem?

met vriendelijke groet,
Ido435
 
Lijkt erop dat Lavarel niet met de aliases om kan gaan.
Verwijder je aliases en probeer het nog eens.

Tardis
 
group by `Id`
Vertaald is een stukje van de foutmelding: 'Id' in group statement is dubbelzinnig
Er wordt van groupBy('articles.Id') blijkbaar group by `Id` gemaakt. Hebben beide tabellen een 'id' veld?
 
Laatst bewerkt:
Tardis & bron bedankt voor jullie reactie.


Er wordt van groupBy('articles.Id') blijkbaar group by `Id` gemaakt. Hebben beide tabellen een 'id' veld?

Beide tabellen hebben een Id.
 
Graag gedaan.
Zelf zet ik altijd de tabelnaam voor "ID", bijvoorbeeld customerID, articleID, imageID. Daarmee voorkom je dubbelzinnigheden :) Suc6 met je project.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan