Mysql Query works only with Alias -
i wondering why query works:
delete `temp` `tagged` `temp` inner join `tags` on (`tags`.`id` = `temp`.`tag_id` , `temp`.`user_id` = '1' , `tags`.`name` = 'tag1') or (`tags`.`id` = `temp`.`tag_id` , `temp`.`user_id` = '1' , `tags`.`name` = 'tag2'); and query, difference being not having temp alias tagged table.
delete `tagged` inner join `tags` on (`tags`.`id` = `tagged`.`tag_id` , `tagged`.`user_id` = '1' , `tags`.`name` = 'tag1') or (`tags`.`id` = `tagged`.`tag_id` , `tagged`.`user_id` = '1' , `tags`.`name` = 'tag2'); the second query produces syntax error. additionally, please re-write query work , doesn't need alias.
syntax error:
syntax error or access violation: 1064 have error in sql syntax; check manual corresponds mysql server version right syntax use near 'inner join
tagson (tags.id=tagged.tag_id,tagged.user_id= '' @ line 1 (sql: deletetaggedinner jointagson (tags.id=tagged.tag_id,tagged.user_id= '2' ,tags.name= 'tag1') or (tags.id=tagged.tag_id,tagged.user_id= '2' ,tags.name= 'tag2');)
you need add table name delete after delete statement.
delete `tagged` `tagged` inner join `tags` on (`tags`.`id` = `tagged`.`tag_id` , `tagged`.`user_id` = '1' , `tags`.`name` = 'tag1') or (`tags`.`id` = `tagged`.`tag_id` , `tagged`.`user_id` = '1' , `tags`.`name` = 'tag2');
Comments
Post a Comment