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? 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) mysql> show create table t; +-------+--------------------------------------------------------------- ------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------- ------------------------------------------------------------+ | t | CREATE TABLE `t` ( `id` int(11) default NULL, `no` int(11) default NULL, `name` char(20) default NULL ) TYPE=MyISAM | +-------+--------------------------------------------------------------- ------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> show create table t1; +-------+--------------------------------------------------------------- -------------------------------------------------------------+ | Table | Create Table | +-------+--------------------------------------------------------------- -------------------------------------------------------------+ | t1 | CREATE TABLE `t1` ( `id` int(11) default NULL, `no` int(11) default NULL, `name` char(20) default NULL ) TYPE=MyISAM | +-------+--------------------------------------------------------------- -------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> truncate t1; Query OK, 0 rows affected (0.01 sec) mysql> insert into t1 select * from t; Query OK, 7 rows affected (0.01 sec) Records: 7 Duplicates: 0 Warnings: 0 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) 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) 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) -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]