Jump to content
php.lv forumi

Multiple-table Delete syntax


Analgiins

Recommended Posts

Labsvakars! Runa iet par Multiple-table Delete syntax. Ir man divas tabulas: cms_pages un cms_blocks, resp., katrai lapai (page) var attiekties vairāki bloki. Lai izdzēstu lapu, ir jāizdzēš arī visi bloki, kas attiecas uz to lapu. Ar vienu vaicājumu, norādot tikai lapas id (vai arī vairākus) to var izdarīt šādi:

DELETE cp, cb
FROM `cms_pages` AS cp, `cms_blocks` AS cb
WHERE cp.pg_id IN (3,5,78) AND cb.cb_page_id = cp.pg_id

Lai arī cik tas stulbi nebūtu, bet tabulā cms_blocks var arī nebūt ieraksti, tb bloki, kas attiektos uz kādu lapu, līdz ar to vaicājums nenostrādā - page netiek dzēsts.

Vēl mēģināju žulīties ar NULL, tjip ja nav bloku tabulā:

DELETE cp, cb
FROM `cms_pages` AS cp, `cms_blocks` AS cb
WHERE cp.pg_id IN (3,5,78) AND (cb.cb_page_id = cp.pg_id OR cb.cb_page_id IS NULL)

bet neiet cauri. Ir kādi varianti, kā to panākt? Negribētos dzēst page'es un blokus atsevišķi, bet to izdarīt ar vienu vaicājumu.

Link to comment
Share on other sites

×
×
  • Create New...