List:General Discussion« Previous MessageNext Message »
From:Paul DuBois Date:July 16 2003 4:47pm
Subject:Re: MySQL Multi Table Delete
View as plain text  
At 11:39 -0500 7/16/03, Gordon wrote:
>I have 2 tables t and t1. In this case, t1 is a copy of t. I want to
>delete rows from t1 based on criteria on the t table and a relationship
>between t ad t1 (in this case the id column). In the results below, I
>would think that the delete should have deleted row 1 {1  5  me) and not
>row 3 (1  5  they) when I run this statement
>
>    delete t1 from t, t1 where t.id = t1.id and t.id=1 and t.name = 'me';
>
>Any ideas on why row 2 is deleted?

You're deleting from t1 but your name = 'me' condition is on t.
t has two rows with id 1 and name 'me'. The query then deletes from
t1 rows with id 1.

Did you mean t1.name = 'me' ?

>
>Same results on Your MySQL connection id is 38495 to server version:
>4.0.10-gamma-nt Windows 2000
>or              Your MySQL connection id is 221 to server version:
>4.0.13-Max Linux 8.0
>
>This is the contents of t & t1 to start
>mysql> select * from t1;
>+------+------+------+
>| id   | no   | name |
>+------+------+------+
>|    1 |    5 | me   |
>|    2 |    7 | you  |
>|    1 |    5 | they |
>|    2 |    5 | me   |
>|    3 |    7 | you  |
>|    3 |    7 | they |
>|    3 |    5 | we   |
>+------+------+------+
>7 rows in set (0.00 sec)
>
>This is the delete statement
>
>      mysql> delete t1 from t, t1 where t.id = t1.id and t.id=1 and
>t.name = 'me';
>      Query OK, 2 rows affected (0.00 sec)
>
>This is the result
>mysql> select * from t1;
>+------+------+------+
>| id   | no   | name |
>+------+------+------+
>|    2 |    7 | you  |
>|    2 |    5 | me   |
>|    3 |    7 | you  |
>|    3 |    7 | they |
>|    3 |    5 | we   |
>+------+------+------+
>5 rows in set (0.01 sec)


-- 
Paul DuBois, Senior Technical Writer
Madison, Wisconsin, USA
MySQL AB, www.mysql.com

Are you MySQL certified?  http://www.mysql.com/certification/

Thread
Lost connection to MySQL server during queryKeith Bussey15 Jul
  • MySQL Multi Table DeleteGordon16 Jul
    • Re: MySQL Multi Table DeletePaul DuBois16 Jul