Har nedanstående tabeller: Vet inte om MySQL stödjer under fråger eller joins. Men du kan prova: > Vet inte om MySQL stödjer under fråger eller joins. Om jag bara kör select-satsen så får jag ut rätt price-post. Du kan oxå testa:Delete
När jag tar bort en category, så vill jag även ta bort articles och
subcategories innehållande denna categoryid. Det är lätt!
Men när jag tar bort articles och subcategories vill jag även att
relaterade price-poster ska tas bort. Hur gör jag enklast det?
Genom att skapa referensintegritet, eller?
Kan man göra det genom en DELETE FROM articles, price ...
category
---------
categoryid
categoryname
subcategories
---------------
subcategoryid
subcategoryname
categoryid
articles
--------
articleid
articlename
categoryid
price
-----
priceid
price
subcategoryid
articleidSv: Delete
<code>
DELETE
FROM price
WHERE price.priceid IN (SELECT SubPrice.priceid
FROM price SubPrice
LEFT JOIN articles ON SubPrice.articleid = articles.articleid
LEFT JOIN subcategories ON SubPrice.subcategoryid = subcategories.subcategoryid
WHERE articles.categoryid = 12 OR subcategories.categoryid = 12)
</code>Sv: Delete
JOIN stöds absolut. Underfrågor stöds i nyare versioner av MySQL.Sv: Delete
Men när jag tar med delete ... in, så blir det fel.
Klarar inte mysql IN?Sv: Delete
<code>
DELETE price.*
FROM price
LEFT JOIN articles ON Price.articleid = articles.articleid
LEFT JOIN subcategories ON Price.subcategoryid = subcategories.subcategoryid
WHERE articles.categoryid = 12 OR subcategories.categoryid = 12
</code>