12. juli 2005 - 01:30Der er
4 kommentarer og 1 løsning
Ens kolennenave i joinede tabeller?
Jeg joiner flere tabeller i dette select kald:
sql = "SELECT * FROM P_Link_Dir" sql = sql & " INNER JOIN P_Program ON P_Link_Dir.Program = P_Program.ID" sql = sql & " INNER JOIN P_Image_Sizes ON P_Link_Dir.Image_Size = P_Image_Sizes.ID" sql = sql & " INNER JOIN P_Link_Type ON P_Link_Dir.Link_Type = P_Link_Type.ID" sql = sql & " WHERE P_Link_Dir.ID >257 ORDER BY P_Program.Program" set db = conn.execute(sql)
Kaldet virker fuldt ud efter hensigten, men problemet er, at jeg har en kolonne ved navn ID i alle tabeller. Skal jeg lave dette om, for at kunne bruge værdien i tabellen P_Program.ID. Når jeg skriver <%= db("ID") %> får jeg ID værdien fra tabellen P_Link_Type. jeg har forsøgt <%= db("P_Program.ID") %> o.lign. men det fejler.
Det er delvist korrekt det xyborx siger, og så ikke helt. Hvis du bare laver en SELECT P_Program.ID AS ID vil feltet stadig bare hedde ID. Derved vil det stadig blive "overskrevet" af de senere ID felter. Ideen her er at du med "AS" kan ændre navnet til en unik identifier, f.eks. P_Program_ID. Dvs. din select ville se sådan ud: SELECT P_Program.ID AS P_Program_id FROM table;
Det virker ikke. Jeg har ændret SQLen til at starte således: "SELECT P_Program.ID AS P_Program_ID,* FROM P_Link_Dir"
Men jeg får følgende fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM P_Link_Dir INNER JOIN P_Program ON P_Link_Dir.Program =
Jeg er ikke så god til MySQL fejl, men jeg formoder det er noget med at jeg vil SELECTe et felt fra P_Program-tabellen, FROM P_Link_Dir...og det lyder ikke logisk! Jeg har dog forsøgt at ændre navnet på ID på den tabel jeg henter fra P_Link_Dir.ID og det virker heller ikke, så jeg tror problemet ligger i at kombinere AS med JOIN Nogen forslag?
Jeg har løst mit problem ved at have unikke kolonne navne i hele databasen. Dette vil være en uoverskuleig måde at gøre det på i en stor database, men i mit tilfælde er det faktisk en ok løsning
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.