Kom ihåg mig?
Home Menu

Menu


Sql fråga

 
Ämnesverktyg Visningsalternativ
Oläst 2007-09-13, 10:08 #11
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Jag tror du måste göra så här:

Pseudo-kod:

Kod:
SELECT lang_id FROM Languges

Loop
{
 $langid=hämta_första row['lang_id'];
 SELECT phrase_id FROM phrases WHERE phrase_id NOT IN (SELECT lang_id,phrase_id FROM Translation WHERE lang_id=$langid)
 echo "Dessa översättningar saknas i språket $langid"
 skriv ut resultatet från SELECT satsen
}
SimonP är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-14, 09:19 #12
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Detta borde fungera:

Kod:
SELECT l.name, p.phrase
FROM languages AS l
JOIN phrases AS p
LEFT JOIN translation AS t ON t.lang_id = l.id AND t.phrase_id = p.id
WHERE t.translation IS NULL
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-14, 19:35 #13
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Tack, jag ska kolla upp detta när jag är tillbaka på jobbet på måndag.
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-18, 01:14 #14
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Jake.Nu: I ditt exempel försöker du plocka fram kopplingar som inte är kopplade om man säger så. Det är lite fel tyvär, det ska vara kopplingar som inte existerar. Din sql ger alltså inga träffar ö.h.t

SimonP: Jag vill helst inte loopa i serverkod för det blir en sjuh***lvetes massa slagningar mot databasen.

fors: Du verkar nästan vara där, men jag förstår inte din "JOIN phrases AS p"... man ska väl joina den på något enligt t-sql dialekten iaf. ?
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-18, 01:45 #15
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Citat:
Originally posted by Robert@Sep 18 2007, 00:14
SimonP: Jag vill helst inte loopa i serverkod för det blir en sjuh***lvetes massa slagningar mot databasen.
Fast det blir bara en loop per språk, har du så många olika språk?
Anledningen till att jag loopade var att jag inte kom på nån bra Query, men om nån kommer på en Query som fungerar så är det iofs bättre att köra på en sån.
SimonP är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-18, 08:43 #16
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Citat:
Originally posted by Robert@Sep 18 2007, 00:14
Jake.Nu: I ditt exempel försöker du plocka fram kopplingar som inte är kopplade om man säger så. Det är lite fel tyvär, det ska vara kopplingar som inte existerar. Din sql ger alltså inga träffar ö.h.t

SimonP: Jag vill helst inte loopa i serverkod för det blir en sjuh***lvetes massa slagningar mot databasen.

fors: Du verkar nästan vara där, men jag förstår inte din "JOIN phrases AS p"... man ska väl joina den på något enligt t-sql dialekten iaf. ?
Utan att sätta några villkor på tabellkopplingen så kommer man få en lista innehållande kombinationer av alla raderna i de två tabellerna. Dvs, om det finns 10 språk och 10 000 fraser så får du en lista med alla kombinationer av dessa (10 * 10 000 = 100 000 olika kombinationer). Därefter använder man translation-tabellen för att ta fram de raderna som är intressanta.

Har du testat SQL-satsen? Den fungerar åtminstone när jag testar den i MySQL. Sedan hur man gör i T-SQL, det vet jag inte. Men jag skulle kunna gissa på att den här frågan inte är MySQL-specifik.
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-09-19, 09:03 #17
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
SimonP: Jag har 20 språk...

fors: Jag har givetvis testat (med mina tabell-/kolumnnamn då) och får ett syntax fel, "Incorrect syntax near the keyword 'join'.". Jag har försökt att modifiera syntaxen utan att få det att fungera på det sätt jag vill. Jag ser ju att din princip är korrekt, så inga problem där, bara syntaxfelet som måste fixas..

[edit] Ska tillägga att om man tar bort JOIN och bara söker fram phrases i FROM så fungerar det, men då crashar LEFT JOIN satsen med felet "The multi-part identifier "l.Id" could not be bound.". Jag gjorde enligt följande istället:

Kod:
SELECT l.name, p.phrase
FROM languages AS l,
phrases AS p
LEFT JOIN translation AS t ON t.lang_id = l.id AND t.phrase_id = p.id
WHERE t.translation IS NULL
Robert är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:00.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017