Sql Flere SELECT * (i 4 tabeler)

Tags:    visual-basic


hej jeg sider med et problem.

jeg har 4 tabeller hvor, hvis det kun var en kunne bruge:

"SELECT * FROM pc"

hvordan kan jeg i 'en streng kalde alle?

"SELECT * FROM navn"
"SELECT * FROM ly"
"SELECT * FROM hd" '
"SELECT * FROM olie"


håber det er oplysninger nok!

0::::||:::::::::::::><:::::::::::::||::::0
Det du ikke dør af, gør dig stærkere
0::::||:::::::::::::><:::::::::::::||::::0



5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Du skal angive hvilke felter der er i hver enkelt af dine tabeller og hvordan deres tilhörsforhold er.
Det du vil er at joine dem samme og derfor skal du angive hvilke nögler i hvilken tabel der passer med hvilken nögle i hvilken tabel.

Så beskriv tabellerne
navn, ly, hd og olie

hvis jeg fx havde tabellen aaa som havde nöglen id og jeg havde tabellen bbb som havde en referende til aaa kaldet id_aaa ville en join kunne så sådan her ud:

select * from aaa, bbb where aaa.id = bbb.id_aaa

Derfor skal jeg vide hvordan du vil binde tabellerne sammen.



Det jeg mente med :

"select * from tabel1,tabel2,tabel3,tabel4"

var at du skulle udskifte tabel1, tabel2 .... med dine egne tabelnavne...

----

hvis du i alle dine fire tabeller har en nøgle kaldet PCID og du vil have en post fra hver tabel med id'et PCID = _pc.ItemData(ls_pc.ListIndex) kan du skrive :

mysql = "SELECT * FROM navn, ly, hd, olie WHERE navn.pcid=ly.pcid AND navn.pcid=hd.pcid AND navn.pcid=olie.pcid AND navn.pcid = " & ls_pc.ItemData(ls_pc.ListIndex)

----

Håber det hjælper....



Jeg er ikke helt med på hvad du mener, men prøv:

"select * from tabel1,tabel2,tabel3,tabel4"



Jeg er ikke helt med på hvad du mener, men prøv:

"select * from tabel1,tabel2,tabel3,tabel4"




hmm det virkede ikke

mysql = "SELECT * FROM tabel1, tabel2, tabel3, tabel4 WHERE pcid = " & ls_pc.ItemData(ls_pc.ListIndex)

ls_pc.ItemData(ls_pc.ListIndex) denne er en unik værdi som er den samme som PCID


måske det er mere sigende

0::::||:::::::::::::><:::::::::::::||::::0
Det du ikke dør af, gør dig stærkere
0::::||:::::::::::::><:::::::::::::||::::0



Jeg er ikke helt med på hvad du mener, men prøv:

"select * from tabel1,tabel2,tabel3,tabel4"



hmm det virkede ikke

mysql = "SELECT * FROM tabel1, tabel2, tabel3, tabel4 WHERE pcid = " & ls_pc.ItemData(ls_pc.ListIndex)

ls_pc.ItemData(ls_pc.ListIndex) denne er en unik værdi som er den samme som PCID


måske det er mere sigende



Problemet er at naar du har flere tabeller og kun en enkelt query skal de joines paa en eller anden maade. Normalt naar man har et faells felt for tabellerne vil man lave en INNER JOIN ... ON.
Du kan stadig bruge dine where statements. Ved ikke helt hvor pcid kommer fra, men jeg antager at det ville vaere en vaerdi du er kommet frem til tidligere.

strsql = "SELECT tabel1.*,tabel2.*,tabel3.*,tabel4.* FROM ((tabel1 INNER JOIN tabel2 ON tabel1.pcid = tabel2.pcid) INNER JOIN tabel3 ON tabel2.pcid = tabel3.pcid) INNER JOIN tabel4 ON tabel3.pcid = tabel4.pcid

Dette antager selvf at du har info liggende om den samme pcid i alle tabeller.
Hvis dette ikke er tilfaeldet, men du vil traekke forskellige vaerdier ud fra hver tabel bliver det noget i retning af:



for i = 1 to 4
strsql = "SELECT * FROM " & tabel(i).Name & " WHERE [" & tabel(i).name & "]![" & tabel(i).Field _(nummer for pcid) & "] = " & ls_pc.ItemData(ls_pc.ListIndex) & ";"
next i

Haaber det hjalp




t