I am writing sql query (using postgres 14) to DELETE row from tags table:
Tags table:
| id | team_id | name |
|---|---|---|
| 1 | 91 | Dev Team |
But, It should CASCADE to the team_member_tag table too:
| id | team_member_id | tag_id |
|---|---|---|
| 1 | 289 | 1 |
Joined by team_member table:
| id | team_id | member_id |
|---|---|---|
| 289 | 91 | 1 |
I tested it, but It seems like my INNER JOIN is out of order. I do not know what I am doing wrong?
My query:
DELETE tag t, team_member_tag tmt
FROM tag
LEFT JOIN team_member_tag tmt ON t.id = tmt.team_member_id
LEFT JOIN team_member tm ON tm.id = tmt.team_member_id
WHERE team_member.member_id = :teamId
AND team_member.member_id = :teamMemberId
$stmt->bindValue("teamId", 91 PDO::PARAM_INT);
$stmt->bindValue("teamMemberId", 289, PDO::PARAM_INT);
I tried first with SELECT, and it says query is OK but returns nothing:
SELECT
name
FROM tag as t
LEFT JOIN team_member_tag tmt ON t.id = tmt.team_member_id
LEFT JOIN team_member tm ON tm.id = tmt.team_member_id
WHERE name = 'Dev Team'
AND tmt.team_member_id = 289 AND tm.team_id = 91;