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: delete tagged inner join tags 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

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -