10. oktober 2003 - 21:50Der er
40 kommentarer og 1 løsning
Søg i flere tabeller
haløjsa alle sammen.
Så er jeg her igen. Nu har jeg kigget og læst en del om databaser og jeg er dødtræt af alle de eksempler med byer og postnumre. Jeg har i min database flere tabeller (i øjebliket kun 3, men ender op med en del tror jeg), i hver tabel har jeg en kolonne jeg i mangel af bedre har kaldt søgeord. Når jeg om en 3-4 år er færdig med at taste alt ind, ville jeg gerne kunne bruge databasen til at søge i, dvs den skal søge efter et nummer eller et ord i alle tabeller. Kan man det, eller skal jeg bare tilbage til papir og blyant.? Nogen havde godt advaret mig om at det ikke var så nemt at lave en database, øvvvv hvor har de ret.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
select * from tabel1 where sogeord like '%SOG%' UNION select * from tabel2 where sogeord like '%SOG%' UNION select * from tabel3 where sogeord like '%SOG%' UNION select * from tabel4 where sogeord like '%SOG%' UNION select * from tabel5 where sogeord like '%SOG%'
og din database er lavet forkert, hvis det skal være løsningen - lav en forespørgsel som hægter alle tabellerne sammen - og søg i den i stedet for.
En søgefunktion som beskrevet, er meget kompleks at lave. Det nemmeste er at lave en forespørgsel med alle tabeller og derefter en formular. Du kan så lave en VBA-kode der søger i et felt, og hvis søgningen er negativ kalder den en ny VBA-kode der søger i næste felt. Men som sagt er det ret komplakst at lave, og jeg har absolut ikke mod på det iaften.
Det var desvæære også det jeg selv var kommet frem til at det var bøvlet. Jeg har prøvet at lavet en forespørgelse, men den vil kun bruge fra den ene tabel. lap>>Hvordan i alverden laver jeg en forspørgelse der hægter alle tabeller sammen? mugs>> Det skulle heller ikke nødvendigvis være i aften. Jeg er bare nået til det punkt hvor jeg er kommet til at tænke på om jeg overhovedet laver det her rigtigt. Jeg "gider" jo ikke taste alle mine dataer ind og så bagefter finde ud af at det er helt forkert.
problemet er formentlig, at du ikke kan relatere tabellerne. Jeg tror ikke, at databasens tabeller egentlig relaterer sig til hinanden, men hver især indeholder uafhængige data (ligesom en række uafhængige regneark).
Du skal derfor lave en forespørgsel, som union'er alle tabeller (uden relationer) - og søger i den.
lap>> Gik ikke så godt med sql taler ikke sproget. Jeg samler på glansbiller og har mange nu. De kommer fra forskellige firmaer (MPL, EF, EAS) de får hver sin tabel. Så er der de gamle uden firma navn men med nummer og uden nummer og navn og alle de løse mærker og gamle album de får også hver deres tabel. Jeg lægger så forskellige oplysninger ind om dem størrelse, pris, osv og så har jeg den der kolonne med søgeord. Jeg ville så gerne når det hele er tastet ind, kunne sidde her ved computeren(man er vel doven) og så slå op i min database og se om jeg har forskellig ark eller løse mærker. Det kræver at jeg kan søge på en beskrivelse eller et bestemt nummer.
Nogle gange vil jeg have brug for at vide hvad jeg har af forskellig nisser eller julemænd og så skal den jo kunne søge på alt hvad jeg har, andre gange har jeg bare et nummer fra MPL og det er jo let nok at se om jeg ahr det. Giver det nogen mening ? :)
Ja det var lige det. Jeg har lavet en til dig nu med søgeord: SELECT EAS.[EAS nr], EAS.E, EAS.D, EAS.U, EAS.[S med], EAS.Antal, EAS.Søgeord, EAS.Beskr, EAS.Mærke, EAS.Kommentar, EAS.[S som], EAS.Pris, MPL.[MPL Nr], MPL.Kat80, MPL.Kat, MPL.Antal, MPL.Søgeord, MPL.Beskrivelse, MPL.Ark, MPL.MP, MPL.MPL, MPL.G, MPL.Mærke, MPL.[S som], MPL.CE, MPL.Kommentar, MPL.Pris, MPL.figurpath, MPL.figurfil FROM EAS INNER JOIN MPL ON EAS.Beskr = MPL.Beskrivelse WHERE (((MPL.Beskrivelse) Like [søg]));
Du kan bare kopier den ind i en forespørgsel, og søg på KÆRLIGHED der er kun 2 poster med det, så det er let at overskue. Jeg kan også sende den. Mvh Henrik13
Henrik13>> hmm kan ikke helt få det til at virke, men jeg må lige spørge, når der står sådan "FROM EAS INNER JOIN MPL ON EAS.Beskr = MPL.Beskrivelse WHERE (((MPL.Beskrivelse) Like [søg]));" søger den så kun i MPL tabellen eller i begge 2 ?
beklager jeg var borte, men dit database design er forkert.
Hvis du skal kunne have flere søgeord på et glansbillede, så er nedenstående korrekt.
Lav en tabel med producenter Lav en tabel med søgeord lav en tabel med glansbilleder (med reference til producenter) lav en tabel med link-glans-søg (reference til søgeord og glansbilleder)
Så kan alle billeder registreres - evt. med en producent (hvor du kan lægge felter med adresse, opstart, link til web, levetid osv.)
Og du har et ubegrænset antal søgeord til alle billeder.
Vend tilbage hvis du vil have et forslag til db - så skal jeg lige bruge din eksisterende database - så finder vi nok ud af det.
Godmorgen/middag. Mit database design er forkert, tjaa det er det måske nok, men jeg sprang jo også udviklingsfasen over, jeg mente jo ikke jeg skulle bruge det til noget, for så svært kunne det jo heller ikke være. Jeg vidste jo hvad jeg ville have, hahaha. Jeg kan godt lide ideen med en tabel til producenter(hvor adresse og sådan kan være) Men 1 tabel med alle glansbilleder har jeg lidt svært ved at få ind i mit hoved, for der er altså mange, rigtig mange. Hvis ingen tager mig det ilde op, så vil jeg da gerne have et forslag til et bedre design hvis det kan lette mit arbejde fremover, med søgninger osv. Jeg sidder her først mere fast iaften(efter 20.00, når børnene sover), i løbet af dagen, render jeg frem og tilbage.
Hejsa. Jeg har valgt at lukke dette spørgsmål, ved selv at tage point. Da jeg ikke har fået noget svar der kan bruges. Mine tabeller er helt forkerte og jeg må forfra og om igen.
Du er nødt til at starte med at skrive de ting ned, som du har tænkt dig at registrere. Derefter skal du normalisere disse oplysninger. Det vil sige, at du kikker på logisk inddeling, relationer, sikre at de samme oplysninger kun skal skrives en gang osv.
Jeg ville nu gerne ha' lavet et forslag til dig, men var ikke nået til det endnu :-)
Nå ja når i nu forsætter her så. Det er det jeg har gjort idag. Fundet papir og blyant. Jeg synes bare jeg ser alt for mange problemer hvis jeg skal lave det om. Jeg er så fastlåst i min opdeling af glansbillederne.
I en tabel har du alligevel inddelingen - ved at kikke på relationen til producent, så derfor skal der ikke være en tabel til hver producent - men 1 tabel til billeder og en anden tabel til producent.
1 tabel med et par millioner billeder er ikke noget problem.
Sidder lige og kigger på Mugs eksempel. Jeg begynder at se hvor I vil have mig hen. Jeg har bare brugt nummerne der er på arkene som primærnøgle og det var måske ikke så smart.
nej, sørg for at bruge autonummerering - du bør ikke have "databærende" nøgler - altså nøgler, som rent faktisk betyder noget.
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.