Joins
Possible joins
1-op-n
parent:id - child:parent_id
Confusing: parent = child and child = parent
parent:child_id - child:id
Item
Voor een combi van een item-record en een content-record geldt dat de join een 1-op-1 is. In principe maakt het dus niet uit of het
parent:id - child:parent_id
of
parent:child_id - child:id
is.
De voorkeur heeft echter
parent:id - child:parent_id
Omdat er dan niet steeds voor iedere type content een extra veld aan de items-tabel hoeft te worden toegevoegd.
Meer dan twee tabellen
Stel vier tabellen met de volgende joins: parent:id - child1:parent_id child1:id - child2:child1_id child2:id - child3:child2_id
Startpunt: de gebruiker klikt in de lijst op een item met parent:id (= edit_id). De parent_id is dus bekend.
Om de vierde tabel (child3) op te kunnen slaan moet child2:id bekend zijn. Immers, de waarde van child2:id moet worden opgeslagen in child3:child2_id.
child2:id wordt gevonden door te filteren op child2:child1_id. Dat vereist dat child1:id bekend is.
child1:id wordt gevonden door te filteren op child1:parent_id. Dat vereist dat parent:id bekend is. En die is bekend.
Er dient dus een recursief rijtje te worden afgelopen. Er dient dus een functie te komen die de waarden in de joins opzoekt.
UPDATE child3
JOIN child2 ON child2.id = child3.child2_id
SET child2_id
WHERE child2_id
Nieuwe record
Voorbeeld
UPDATE jnxt_jne_prs_persons
SET jnxt_jne_prs_persons.prs_item_id = jnxt_jne_wfm_items.id
Met variabelen
UPDATE jn_group_to_table
SET jn_group_to_table.jn_group_to_column = jn_group_from_table.jn_group_from_column
SELECT child2_id FROM