Miten pystyn yhdistelemään kolmen taulun tietoja SQL lauseella?
taulut (joissa kentät): Laskut(laskuno, asiakasno), Laskurivit(laskuno, tuoteno), Asiakkaat(numero, nimi)
Haluaisin että recordset:iin tulee Laskut(laskuno), Laskurivit(tuoteno), Asiakkaat(nimi)
Tiedän että kahden taulun liitokset onnistuvat lauseella
SELECT Laskut.laskuno, Laskurivit.tuoteno FROM Laskut LEFT JOIN Laskurivit ON Laskut.laskuno=Laskurivit.laskuno WHERE jne...
Kysymyksesi varmasti liittyy MySQL:ään.
Käytä useampaa LEFT JOIN:a, tai sitten älä ;) Riippuu ihan että haluatko että kaikki taulut on jotenkin yhteydessä toisiinsa. En tiedä miten toimii muissa SQL tietokannoissa, kokemusta vain MySQL:stä.
Esim 1.
SELECT s.data AS sdata, d.data AS ddata, w.data AS wdata FROM table AS s, table2 AS d LEFT JOIN table3 AS w ON w.data=s.data WHERE s.data='infoa' AND d.data='more info'
Esim 2.
SELECT s.data AS sdata, d.data AS ddata, w.data AS wdata FROM table AS s LEFT JOIN table2 AS d ON d.data=s.data LEFT JOIN table3 AS w ON w.data=d.data WHERE s.data='infoa'
Ratkaisuja on useita, tässä kaksi useiten käytettyä.
Tämä toimii ainakin Oraclessa ja Accessissa
(veikkaan että myös Mysql:ssa)
select a.laskuno, b.tuoteno, c.nimi
from Asiakkaat c, Laskurivit b, Laskut a
where c.numero=a.asiakasno and b.laskuno=a.laskuno
Oletin, että Asiakkaat.numero viittaa Laskut.asiakasno -kenttään.
MySQL:ssä tuo sinun esimerkkisi toimii, muttei tuollaisenaan. Vaan jos tauluille annetaan jokin toinen nimi, lyhenne, pitää sitten pistää "Asiakkaat AS c" jnejne
Aihe on jo aika vanha, joten et voi enää vastata siihen.