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
tags
on (tags
.id
=tagged
.tag_id
,tagged
.user_id
= '' @ line 1 (sql: deletetagged
inner jointags
on (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