Ilja: MySQL-Abfrage

Beitrag lesen

hi

Ich habe 2 Tabellen. In einer sind die Produkte gespeichert, und in der anderen sind Produkte markiert, die nicht mit ausgegeben werden sollen:

warum brauchst du dafür 2 tabellen. arbeite doch mit einem flag in der ersten tabelle, das heißt eine neue spalte, die den wert 0 oder 1 haben kann. 0 steht für gesperrt nicht ausgeben und 1 für frei ausgeben.

was die 2 tabelen betrifft, so musst du sie richtig miteinander verknüpfen. dafür hälst du dir am besten vor augen, was passiert, wenn du zwei tabellen miteinander verknüpfst und keine datensätze durch eine bedingung ausschließt, in deinem fall also ohne die WHERE tab1.id != tab2.pid. dann würde das sogenante karthesische produkt gebildet:

jeder datensatz in der ersten tablle wird mit jeden datensatz aus der zweiten datensatz verknüpft.

sagen wir tabelle eins hat 10 datensätze und tabelle 8 datensätze, dann würdest du bei dir mit SELECT id, best-nr, beschreibung FROM tabelle1 tab1, tabelle2 tab2 10 * 8 = 80 Datensätze herauskommen. nun bringen wir wieder deine where bedingung mit rein. diese schließt aber nur alle datensätze aus, wo sich die beiden id's gleichen, nimmt also alle ungleichen mit rein. das sind noch eine ganze menge.

Ilja