![]() |
Hjälp med SQL-rad
Måndagmorgon, står helt still i huvudet:
Jag vill få fram vilka Poster som inte än har översatts till valt språk. Databasen är två tabeller: Tabell 1 ID Tabell 2 ID ParentId langId Title (finns givetvis Tabell 3 innehåller språken) I Tabell 2 ligger alltså alla poster, markerad med langId och parentId som går till Tabell1 som innehåller den gemensamma data som är språkoberoende. I SQL vill jag få fram: Alla poster som inte ännu har översatts till valt språk X. |
Vilken databas kör du?
|
Låter som en OUTER JOIN.
Kod:
SELECT * |
Eller
Kod:
SELECT * FROM tabell1 |
Tyvärr funkar inte ovanstående som jag önskade.
Jag vet inte om det beror på att om en översättning inte är gjord, så finns inte detta post i Tabell2, finns alltså inga NULL? Så jag måste kanske använda mig av ett standardspråk - som tar fram alla poster på detta standardspråk och jämför vilka som finns med valda språket X. Hur skulle en sådan sql se ut? (MySQL) |
Tror faktiskt jag lyckats lösa det med en combo från er båda :)
Kod:
SELECT * X = Valda språket som jag vill översätta till Testat med flera olika språkkombinationer i db:n och verkar ta fram det jag vill - ser ni några nackdelar? Detta skall användas i BACK-END av CMS för språklösning, så inga hevy träffar. |
Vid en OUTER JOIN så ska du få träffar även fast raden saknas i den högra tabellen. Mystiskt värre att ingen av lösningarna fungerade då både min och jonnys borde ge rätt svar för det givna problemet.
Är det verkligen rätt att ha langId i ditt join-villkor? Ska inte det ligga i WHERE-klausulen? Jaja, om det fungerar är det väl bra. :-) |
Otestat och fritt ur minnet....
Kod:
SELECT * |
Alla tider är GMT +2. Klockan är nu 08:41. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson