Toon posts:

[SQL] Tabel combineren met andere tabel*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een query aan maken om DATA uit een tabel te halen die niet voorkomt in een ander tabel.
Het gaat hier om een tabel met producten en gerelateerde producten.

Het gaat erom dat als ik een gerelateerd product toe wil voegen dat ik de reeds toegevoegd gerelateerd producten niet als keuze wil hebben.

Table products
product_id
name
price
enz
enz
enz

Table related_products
parent_id
product_id

Query:
SELECT p.name
FROM products p
LEFT JOIN related_products r ON p.product_id = r.product_id
WHERE r.product_id IS NULL

Dit werkt goed. Alleen een product kan aan meerdere producten gerelateerd zijn. Een accesoir kan een accesoir zijn bij verschillende producten.

Als je dan een je gerelateerde producten gaat ophalen met deze query geeft hij de producten ook NIET weer die bij aan andere producten gerelateerd zijn. Wat hij dus moet doen is ook nog op de parent_id moet gaan filteren. Maar hoe moet ik dat doen?

Deze query werkt namenlijk niet :
Query:
SELECT p.name
FROM products p
LEFT JOIN related_products r ON p.product_id = r.product_id
WHERE r.product_id IS NULL
AND r.parent_id = "**EEN ID**"

Weten jullie een oplossing

(Tabellen structuur is een uitgeklede versie aangezien hij in het echt een stuk groter is)

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 28-04 22:08

ripexx

bibs

Het gevaar van parent-child constrcuteis is dat je een loop kan krijgen en dat je natuurlijk vele nivo's diep kan gaan. Ik vraag me alleen af of je niet voor een subquery zou moetn gaan in plaats van de left join. Omdat een subquery in principe de juiste resultaten kan geven. Hebje het hier over MySQL of een andere RDBMS, want je beperkingen bij MySQL zijn nogal groot in dit geval.

buit is binnen sukkel