Datensatz ausgeben wenn in deiner anderen tabelle nicht vorhande
Manuel1889
- datenbank
Hallo
Ich brauche einen befehl für eine mysql abfrage:
ich habe 2 tabellen.
rechnungspositionen:
id, rechnungsnummer, preis, ...
rechnungsauswahl
rechnungsnummer, id_rechnungsposition, ...
die abfrage muss alles auswerfen, nur nicht wenn in der tabelle rechnungsauswahl die id_rechnungsposition mit der rechnungsnummer zusammenpasst.
das heißt. Im programm wird eine rechnungsposition ausgewählt und die id und rechnungsnummer in die tabelle rechnungsauswahl geschrieben. dieser datensatz soll danach in der abfrage nicht mehr erscheinen.
ich hoffe ich habe es verständlich geschrieben.
Danke
MfG
Manuel
die abfrage muss alles auswerfen, nur nicht wenn in der tabelle rechnungsauswahl die id_rechnungsposition mit der rechnungsnummer zusammenpasst.
Hallo!
Ich denke durch die Rechnungsnummer sind die beiden Tabellen verbunden, dann sollte es mit einem einfachen INNER JOIN und einem WHERE NOT getan sein:
SELECT [was immer du brauchst] FROM `rechnungspositionen` rp INNER JOIN `rechnungsauswahl` ra ON rp.`rechnungsnummer` = ra.`rechnungsnummer` WHERE NOT ra.`rechnungsnummer` = ra.`rechnungsposition`
mfg
yo,
das heißt. Im programm wird eine rechnungsposition ausgewählt und die id und rechnungsnummer in die tabelle rechnungsauswahl geschrieben. dieser datensatz soll danach in der abfrage nicht mehr erscheinen.
typischer fall für einen OUTER JOIN, wobei du schauen musst, ob ich die Join -bedingung richtig umgesetzt habe:
SELECT
FROM rechnungspositionen rp
LEFT JOIN rechnungsauswahl ra ON ra.id_rechnungsposition = rp.id AND ra.rechnungsnummer = rp.rechnungsnummer
WHERE ra.id_rechnungsposition IS NULL
;
Ilja