Maison > base de données > tutoriel mysql > Comment supprimer les publications liées à un client spécifique à l'aide des jointures MySQL ?

Comment supprimer les publications liées à un client spécifique à l'aide des jointures MySQL ?

Barbara Streisand
Libérer: 2025-01-20 17:10:12
original
526 Les gens l'ont consulté

How to Delete Posts Related to a Specific Client Using MySQL Joins?

Suppression de publications associées à un client spécifique dans MySQL

Problème :

Notre base de données contient trois tables : clients, projects et posts. Le but est de supprimer toutes les publications liées à un client particulier. L'instruction SQL suivante est inefficace :

<code class="language-sql">DELETE
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;</code>
Copier après la connexion

La table posts n'a pas de clé étrangère client_id directe ; il ne possède qu'une project_id clé étrangère.

Solution :

Pour éliminer les publications liées à des projets appartenant à un client spécifique, l'instruction DELETE doit cibler explicitement la table posts. La requête corrigée est :

<code class="language-sql">DELETE posts
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;</code>
Copier après la connexion

Solution alternative :

Une méthode plus efficace consiste à implémenter une contrainte ON DELETE CASCADE lors de l'établissement de la relation de clé étrangère entre les tables projects et posts. Cela supprime automatiquement les publications lorsque leur projet associé est supprimé. La requête SQL révisée devient :

<code class="language-sql">DELETE FROM projects WHERE client_id = :client_id;</code>
Copier après la connexion

Cette approche exploite la contrainte ON DELETE CASCADE pour supprimer simultanément toutes les publications associées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal