Taulussa a1 on asiakkaita ja asiakkaat yksilöivä sarake id.
Taulussa b1 on tilauksia ja niissä sarakkeessa til_id taulun a1 mukainen id
Haluan tulostaa luettelon asiakkaista, joilla ei ole yhtäkään tilausta.
Tähän varmastikin on jokin yksinkertaisempikin tapa kuin verrata silmukoissa jokaista asiakkaan id:tä jokaiseen tilaukseen. Kiitän vastauksista etukäteen!
Taulussa b1 on tilauksia ja niissä sarakkeessa til_id taulun a1 mukainen id
Haluan tulostaa luettelon asiakkaista, joilla ei ole yhtäkään tilausta.
Tähän varmastikin on jokin yksinkertaisempikin tapa kuin verrata silmukoissa jokaista asiakkaan id:tä jokaiseen tilaukseen. Kiitän vastauksista etukäteen!
Vastaukset 6
Vanhimmat
Suosittelen lukemaan ajatuksella vaikkapa
https://www.w3schools.com/mysql/mysql_join.asp
tuo taulujen erilaisista linkityksistä kertova opetussivusto. Ratkaiseva idea saattaisi löytyä sieltä esimerkeistä ja harjoituksista.
SELECT * FROM b1
WHERE Maara > '0';
Ai niin et kertonut missä sarakkeessa on tilausten määrä, siksi lisäsin sarakkeen "Maara"
Ei toimi, Täytyy yhdistää tietoja kahdesta taulusta.
Silloin olet tehnyt taulukot väärin, yksi yhteinen sarake täyttyy olla taulujen välillä, pelkällä järjestysnumerolla on tyhmää operoida lajitteluja.
Oikeaoppisessa taulukossa taulujen tietoja useamman taulun välillä liitellään seuraavasti:
INNER JOIN:
Palauttaa tietueet, joilla on vastaavat arvot molemmissa taulukoissa.
LEFT OUTER JOIN:
Palauttaa kaikki tietueet vasemmasta taulukosta ja vastaavat tietueet oikeanpuoleisesta taulukosta.
RIGHT OUTER JOIN:
Palauttaa kaikki tietueet oikeasta taulukosta ja vastaavat tietueet vasemmasta taulukosta.
FULL OUTER JOIN:
Palauttaa kaikki tietueet, kun joko vasemmassa tai oikeassa taulukossa on osuma.
Tauluissa on yhteinen nimittäjä, jos tarkasti lukee:
.
"Taulussa a1 on asiakkaita ja asiakkaat yksilöivä sarake id.
Taulussa b1 on tilauksia ja niissä sarakkeessa til_id taulun a1 mukainen id.
Haluan tulostaa luettelon asiakkaista, joilla ei ole yhtäkään tilausta."
Taulusta b1 haetaan ne rivit, joissa sarakkeessa til_id ei ole mitään taulun id sarakkeessa olevaa arvoa.