Avatar billede hkb-x Nybegynder
20. april 2006 - 15:42 Der er 20 kommentarer og
1 løsning

søg i flere tabbeller

Jeg har en søgefunktion hvor jeg skal søge i flere tabeller på en gang... Eksempel på min forespørgsel.

select noget from table1, table2 where begrænsning='værdi'

Men jeg får fejlen: Column 'begrænsning' in where clause is ambiguous

Hvad betyder det, hvad er fejlen og hvordan løser jeg det?
Avatar billede mjense173 Nybegynder
20. april 2006 - 15:45 #1
select noget from table1, table2 where table1.begrænsning='værdi' and table2.begrænsning='værdi'
Avatar billede mjense173 Nybegynder
20. april 2006 - 15:47 #2
Men jeg vil tro at du skal lave noget JOIN, da du kun får fællesmængden på denne måde.. Måske virker det bedre med "OR table2.begr...." men prøv det, og svar tilbage hvis det ikke virker.
Avatar billede ladyhawke Novice
20. april 2006 - 15:49 #3
dit problem er at du ikke definerer hvilken kolonne "begrænsning" du ønsker, så som mjense173 skriver, så skal du identificere den entydigt og skrive din where clause som en kombination.

mener at join i dette tilfælde er implicit...
Avatar billede mjense173 Nybegynder
20. april 2006 - 15:49 #5
Column 'begrænsning' in where clause is ambiguous

ambiguous = tvetydig, dvs. at "begrænsning" findes i begge tabeller, så du er nød til at skrive tabelnavn.søjlenavn, for at undgå dette.
Avatar billede hkb-x Nybegynder
20. april 2006 - 16:06 #6
når jeg bruger denne forespørgsel (id er unikt):

select * from table1, table2 where table1.id='1000' or table2.id='1000'

så får jeg bare spyttet en masse forskellige felter ud men! burde det ikke kun udskrive feltet med id-nummeret 1000?
Avatar billede hkb-x Nybegynder
20. april 2006 - 16:09 #7
wow... havde ikke set alle disse indlæg... ser ud til at jeg må omfprmulere mit spørgsmål.

Når man søger i databasen efter en person. f.eks Jens Jensen så kan han forekomme i flere tabeller. Jeg vil gerne gennemsøge alle de tabeller Jens Jensen kan være i én forespørgsel.

Hvordan gør jeg nemmest det?
Avatar billede arne_v Ekspert
20. april 2006 - 16:26 #8
det lyder som om du skal lave en union
Avatar billede hkb-x Nybegynder
20. april 2006 - 16:26 #9
??

I må meget gerne lave et eksempel...
Avatar billede hkb-x Nybegynder
20. april 2006 - 16:33 #10
ligger 15 point oven i til en der kan lave et fungerende eksempel...
Avatar billede ladyhawke Novice
20. april 2006 - 16:45 #11
SELECT noget from table1 where begrænsning='værdi'UNION SELECT SELECT noget from table2 where begrænsning='værdi'
Avatar billede ladyhawke Novice
20. april 2006 - 16:45 #12
ups, husk mellemrum før UNION
Avatar billede hkb-x Nybegynder
20. april 2006 - 16:46 #13
skal der være 2x select?
Avatar billede ladyhawke Novice
20. april 2006 - 16:48 #14
nej, det var en copy paste fejl, undskyld
Avatar billede hkb-x Nybegynder
20. april 2006 - 16:50 #15
@ladyhawke

find... det virker næsten som det skal... det eneste problem er at jeg ikke kan gøre sådan:

SELECT noget from table1 where begrænsning='værdi'UNION SELECT noget, noget_andet from table2 where begrænsning='værdi'


men kan det gøres på nogen måde?
Avatar billede hkb-x Nybegynder
20. april 2006 - 17:12 #16
har fundet en måde...

ladyhawke, skriv svar for point...
Avatar billede ladyhawke Novice
20. april 2006 - 17:25 #17
ok her er det...

Du kan jo lige poste din løsning her, så andre kan få glæde af den
Avatar billede hkb-x Nybegynder
20. april 2006 - 17:29 #18
jeg havde i den ene tabel et felt jeg ikke havde i den anden så jeg gjorde bare såddan:

SELECT noget, noget_andet from table1 where begrænsning='værdi'UNION SELECT noget, noget as noget_andet from table2 where begrænsning='værdi'
Avatar billede ladyhawke Novice
20. april 2006 - 17:37 #19
ok, det fremgik ikke helt af spørgsmålet i første omgang, men det er helt fint hvis du kan håndtere data på den måde
Avatar billede hkb-x Nybegynder
20. april 2006 - 17:38 #20
det er lidt fusk... men det virker fint...
Avatar billede ladyhawke Novice
24. april 2006 - 07:50 #21
og ja det er fusket fordi man midlertidigt omdøber en kolonne, men hvis du bare er klar over det og ikke opdaterer via samme SQL, så går det nok
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