Ga naar hoofdinhoud

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