Avatar billede Slettet bruger
28. august 2011 - 20:18 Der er 10 kommentarer og
1 løsning

Innerjoin men med samme kolonnenavn?

Jeg har følgende SQL linie:

select rap.*, cam.* from rap inner join cam on rap.campaign = cam.id where rap.userid = 1 order by rap.period


Mit problem er nu, at jeg vælger at tage ALLE kolonner fra begge tabeller, og dette virker rigtig, rigtig fint.
Men som nævnt, med ét lille problem. Jeg har i begge tabeller en kolonne kaldet "workstation", og lige nu tager den kolonnen fra cam tabellen, hvor jeg faktisk skal bruge kolonnen fra rap tabellen.

Er det muligt, at bede den om IKKE at tage én specifik kolonne fra én af tabellerne, uden at skulle definere alle kolonnerne fra denne tabel? :)
Jeg benytter jo netop cam.* for at kunne undgå, at skulle definere samtlige kolonner i tabellen.
Avatar billede Slettet bruger
28. august 2011 - 21:04 #1
Jeg har aldrig stødt på at man kan gøre det som du ønsker uden at specificere hver enkelt kolonne du vil have vist. I hvert fald ikke med de databaser jeg har rodet med.

Kan du ikke bare bytte om på rap.* of cam.* eller prøve med:
select rap.*, cam.*, cam.workstation as cam_workstation inner join...
og så hente værdien fra "cam_workstation" eller hvad du nu vælger at kalde den i dit select statement.
Avatar billede Slettet bruger
28. august 2011 - 21:07 #2
Overså du mente rap.workstation, så erstat "cam.workstation as cam_workstation" med "rap.workstation as rap_workstation".
Avatar billede Slettet bruger
28. august 2011 - 22:29 #3
Det virker desværre ikke at predefinere den enkelte kolonne i tabellen cam som cam_kolonne. Altså dit cam.workstation as cam_workstation.

Jeg kan ellers godt se det logiske i det :)

Så må jeg vel "nøjes" med det næstebedste: At manuelt vælge alle kolonner med undtagelse af den éne. :)
Avatar billede Slettet bruger
28. august 2011 - 22:34 #4
På den anden side, frasorterer jeg jo egentligt også de kolonner som jeg i tabel2 ikke skal bruge.. Så må det bare ER bedst, at predefinere derfra :)

Smid gerne et svar som tak for hjælpen
Avatar billede ae03 Novice
29. august 2011 - 08:01 #5
Hvis ideen med at hente alle kolonner er at spare dig selv for at skulle tilføje mange af dem enkeltvis i koden, kan du jo hente alle ved drag and drop af mappen, og så slette den eller de uønskede mapper. Det letter i hvert fald noget på muse- og/eller skrivearbejdet.
Avatar billede Slettet bruger
29. august 2011 - 09:39 #6
Jeg forstår på ingen måder hvad du mener ae03..? Hvilke mapper?
Avatar billede ae03 Novice
29. august 2011 - 10:45 #7
Bruger du SQL Server Management Studio til at arbejde med databasen? I så fald kan du få alle variable over i din Query ved at trække mappen over fra Object Explorer. Det er en del lettere end at skulle skrive dem ind enkeltvis.

Håber, at det hjælper til at forklare, hvad jeg mener.
Avatar billede Slettet bruger
29. august 2011 - 11:21 #8
Jeg benytter SQL Server Management Studio til at arbejde med databasen ja, men kun til opsætning heraf.
Al SQL sætning-generering foretages i notesblok efter egen viden, ligesom al anden kode jeg laver.
Avatar billede ae03 Novice
29. august 2011 - 12:41 #9
Hvis du har mange kolonner, du skal nævne individuelt i dit query, ville jeg i dette tilfælde afvige fra den praksis, da det vil spare dig for en del tastearbejde at kunne bruge drag and drop. Det er trods alt ikke videre vanskeligt at kombinere arbejdet i notesblok med management studio. Men det er op til dig. Bare et velment råd herfra.
Avatar billede Slettet bruger
30. august 2011 - 21:46 #10
Fik ikke lige fuldt op på den her. Pointene kan du give dig selv eller en anden.
Avatar billede Slettet bruger
31. august 2011 - 14:11 #11
Tak for rådet ae03 :) Jeg vil prøve, at lege med det på et senere tidspunkt.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester