hvis du har en tabel som hedder f ex minTabel og har felterne ID (datatypen Autonummer) navn (tekst) og har en anden tabel som hedder kunder og har felterne kundeAdresse (tekst), kundeKonto (tal), NavnID (tal) Hvis Kunder.NavnID er det, det samme som Navn.ID så kan joine de to tabeller sammen: Select Navn.*, Kunder.* from navn, kunder where navn.ID = kunder.NavnID
Jeg har disse 2 tabeler som jeg ønsker at "join" index og nyheder. index har felterne ID, Firmanavn, Adresse, Tekst1, Tekst2 nyheder har felterne ID, Overskrift, Tekst
Det er ikke en JOIN du skal bruge, men derimod en UNION. Hvorvidt du har adgang til denne, afhænger af hviklen database samt hviklen version af denne du benytter.
du kan bare oprette et nyt felt i nyheder tabellen som hedder Index_id og dets datatype er tal. derefter kopier du Ider fra index og indsætter du i Index_id nu kan du joine de to tabeller. Union i dette tilfælde er ikke passende.
hossein -> Fordi - hvis jeg altså læser quarkb's spørgsmål korrekt - så er det en attribut som går igen i flere tabeller der skal hentes. Der er derimod intet sagt om at værdien af en attribut i en tabel har nogen reference til værdien i en anden tabel.
quarkb -> Vi kan ikke lave nogen SELECT streng for dig uden at vide hvordan dine tabeller ser ude og hvad det præcist er du vil have ud af din søgning.
Jeg har lavet en søge side som gerne skulle søge efter en ønsket tekst eller ord i begge tabeler (Index & Nyheder). Index har felterne ID, FirmaNavn, Tekst1, Tekst2 og Tekst3 Nyheder har felterne ID, Overskrift og Tekst. På hvilken måde søge jeg bedst i begge tabeler og deres felter.
Jeg beklager hvis jeg ikke har forklaret mig tydeligt nok. Jeg håber det er bedere denne gang. :-)
Et lille tillægs sprøgsmål. Er det muligt på en nem måde at søge i alle felter i Tabelen uden at skulle skrive alle felterne som nedenstående: sql = "SELECT * FROM [Index] WHERE Tekst1 LIKE '%" & soeg & "%' OR Tekst2 LIKE '%" & soeg & "%' OR Tekst2 LIKE '%" & soeg & "%' OR FirmaNavn LIKE '%" & soeg & "%'"
Som sagt er det UNION du skal have fat på. Derfor skal du lige finde ud af om den overhovedet er understøttet i MS Access 2000. Dernæst skal du finde ud af hvordan syntaksen er.
Princippet er at du først udtrækker et antal rækker data fra databasen og så bringe dem på samme form (ellers kan UNION ikke bruges).
De 4 SQL sætninger ser sådan her ud:
1) SELECT ID, Text1 AS Text FROM Index 2) SELECT ID, Text2 AS Text FROM Index 3) SELECT ID, Text3 AS Text FROM Index 4) SELECT ID, Text FROM Nyheder
Hver af disse SQL resultere i en tabel med to felter kaldet hhv. ID og Text. Disse slås så sammen til en tabel via UNION:
(SELECT ID, Text1 AS Text FROM Index) UNION (SELECT ID, Text2 AS Text FROM Index) UNION (SELECT ID, Text3 AS Text FROM Index) UNION (SELECT ID, Text FROM Nyheder)
Bemærk at hvorvidt dette går godt blandt andet kan afhænge af om dine oprindelige felter Text1, Text2, Text3 og Text er af same type og størrelse.
Du har nu dine data samlet i en stor tabel med to felter kaldet ID og ID. Denne kan du så søge på:
SELECT ID, Text FROM (SELECT ID, Text1 AS Text FROM Index) UNION (SELECT ID, Text2 AS Text FROM Index) UNION (SELECT ID, Text3 AS Text FROM Index) UNION (SELECT ID, Text FROM Nyheder) WHERE Text LIKE '%" & soeg & "%'
Bemærk dog at du ikke umiddelbart kan se ud af de fundene ID-værdier om hittet stammer fra Index- eller Nyheder tabellen.
Du/han kan godt anvende UNION i access men tabellerne skal have samme strukture. Sql sætningen er det samme som nielle beskriver. Hvis du sætter sætningen i din ASP side så svare tiden forlænges derfor jeg anbefaler at du laver en forspørgsel i selve access (i design) og kalder den f ex minSearch, også kalder du denne forspørgsel fra din asp side. select * fra minSearch where XXX like YYY. Men hvordan du indsætter noget i din tabeller?
Delvist, jeg har brugt lidt af dit og ændret lidt på tabelerne. Jo det virker nu som jeg gerne ville. Og mannge tak
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.