FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
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. |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Bara ett inlägg till!
|
Vilken databas kör du?
|
|||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Bara ett inlägg till!
|
Låter som en OUTER JOIN.
Kod:
SELECT * FROM tabell1 LEFT OUTER JOIN tabell2 ON tabell2.parentId = tabell1.ID WHERE tabell2.langId = 1337 AND tabell2.ID IS NULL; |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Supermoderator
|
Eller
Kod:
SELECT * FROM tabell1 WHERE id NOT IN (SELECT id FROM tabell2 WHERE langid=3)
__________________
Jonny Zetterström se.linkedin.com/in/jonnyz | bjz.se | sajthotellet.com | kalsongkungen.se | zretail.se | zetterstromnetworks.se | webbhotellsguide.se | ekonominyheter24.se | nyamobiltelefoner.se | gapskratt.se | antivirusguiden.se | jonny.nu |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Medlem
|
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) |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
Tror faktiskt jag lyckats lösa det med en combo från er båda
![]() Kod:
SELECT * FROM tabell1 LEFT OUTER JOIN tabell2 ON tabell2.parentId = tabell1.ID AND tabell2.langId=Y WHERE tabell1.id NOT IN (SELECT parentId FROM news_loc WHERE langid=X) 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. |
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Bara ett inlägg till!
|
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. :-) |
|||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Klarade millennium-buggen
|
Otestat och fritt ur minnet....
Kod:
SELECT * FROM tabell2 WHERE langid=Y AND parentid NOT IN (SELECT parentId FROM tabell2 WHERE langid=X) Senast redigerad av Conny Westh den 2011-02-08 klockan 11:19 |
||
![]() |
![]() |
Svara |
|
|