Permalänk

SQL ambiguous

Hej,

jag har problem men ambiguous kod på en query, detta innebär att server inte vet vilken den ska utgå ifrån vid val.

Jag vill skriva ut ID samtidigt som jag vill söka på den då blir det förvirrande, hur kan jag undgå detta?
Här är koden:

SELECT DISTINCT id,title,category,year,director FROM movie JOIN director ON movie.id=director.id;

Permalänk
Hedersmedlem
Skrivet av naturaljoin:

Hej,

jag har problem men ambiguous kod på en query, detta innebär att server inte vet vilken den ska utgå ifrån vid val.

Jag vill skriva ut ID samtidigt som jag vill söka på den då blir det förvirrande, hur kan jag undgå detta?
Här är koden:

SELECT DISTINCT id,title,category,year,director FROM movie JOIN director ON movie.id=director.id;

Svårt att svara på utan att veta hur tabellerna ser ut. Men några tips.
- Har du flera tabeller med fält med samma namn så måste du speca vilken tabell du vill använda. Det har du missat för fältet id.
- Jag tror inte att du vill joina tabellerna på movie.id=director.id. Det bör finnas ett fält för director i movie tabellen som ska joinas med director.id.

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem
Skrivet av naturaljoin:

Hej,

jag har problem men ambiguous kod på en query, detta innebär att server inte vet vilken den ska utgå ifrån vid val.

Jag vill skriva ut ID samtidigt som jag vill söka på den då blir det förvirrande, hur kan jag undgå detta?
Här är koden:

SELECT DISTINCT id,title,category,year,director FROM movie JOIN director ON movie.id=director.id;

När du gör din join så finns nog id i båda tabellerna movie och director. Du behöver specificera vilken du vill ha, t.ex. movie.id eller director.id

Permalänk

@naturaljoin: Båda tabellerna har kolumnen id och det är därför den inte vet vilken av dom du vill visa. Det du behöver göra är att prefixa id med tabellens namn, t.ex: SELECT DISTINCT movie.id...

Om du vill ha båda id:na så får du namnge dom på följande sätt: SELECT DISTINCT movie.id AS movie_id, director.id AS director_id...

Permalänk
Medlem

Eftersom att "id" finns i både movie och director tabellerna så måste du specificera vilken det är du vill select:a ifrån

SELECT DISTINCT movie.id, title, category, year, director FROM movie JOIN director ON movie.id=director.id;

Visa signatur

NZXT H400i, Intel i5 9600k, EVGA Geforce RTX 2070, Samsung 970 EVO Plus

Permalänk
Skrivet av CH4113:

Eftersom att "id" finns i både movie och director tabellerna så måste du specificera vilken det är du vill select:a ifrån

SELECT DISTINCT movie.id, title, category, year, director FROM movie JOIN director ON movie.id=director.id;

Såklart tack!

Permalänk
Medlem

Problemet i sig är ju redan löst, men av ren nyfikenhet så undrar jag varför du kopplar samman movie.id och director.id?
Spontant så känns det som att det inte bör vara så, utan att movie eventuellt bör innehålla en kolumn som heter director_id (eller vilken namnstandard du hellre föredrar) om nu en film enbart kan ha 1 director i domänen.

Skickades från m.sweclockers.com