Click here to Skip to main content
16,017,069 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have facing some problem in this query.

Can anybody help me?
SQL
CREATE PROCEDURE sp_update_userdetails
(
)
BEGIN
    UPDATE user_details 
    SET  user_details.firstname  = `firstname`
        ,user_details.lastname   = `lastname`
        ,user_details.`password` = `password`
        ,user_details.address    = `address`
        ,user_details.photo      = `photo`
        ,city.`name`             = `name`
        ,area.`name`             = `name`
        ,usertype.`name`         = `name` 
    FROM user_details
    INNER JOIN area     ON user_details.area_id = area.id
    INNER JOIN city     ON user_details.city_id = city.id
    INNER JOIN usertype ON user_details.type_id = usertype.id
    WHERE user_details.email = email;

    SELECT * FROM user_details;
END;

And my error is -
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM user_details
INNER JOIN area
ON user_details.area_id=area.id
INNER JOI' at line 7
Posted
Updated 28-Nov-11 1:59am
v3
Comments
RaisKazi 28-Nov-11 7:24am    
Edited: 1) Formatting 2) Added "pre" tag.

The from statemtn isn't needed. You want to do something like this:

SQL
UPDATE userDetails, city, area, usertype
SET      user_details.firstname  = `firstname`
        ,user_details.lastname   = `lastname`
        ,user_details.`password` = `password`
        ,user_details.address    = `address`
        ,user_details.photo      = `photo`
        ,city.`name`             = `name`
        ,area.`name`             = `name`
        ,usertype.`name`         = `name`
WHERE user_details.email = email
AND user_details.areaID = area.id
AND user_details.city_id = city.id
AND user_details.type_id = usertype.id;

I would also probably update each table individually just to be sure that what I want to happen is actually happening. Being clever with your SQL code almost never works out...
 
Share this answer
 
CREATE PROCEDURE sp_update_userdetails
(
)
BEGIN
UPDATE user_details
SET user_details.firstname = `firstname`
,user_details.lastname = `lastname`
,user_details.`password` = `password`
,user_details.address = `address`
,user_details.photo = `photo`
,city.`name` = `name`
,area.`name` = `name`
,usertype.`name` = `name`
FROM user_details
INNER JOIN area ON user_details.area_id = area.id,
INNER JOIN city ON user_details.city_id = city.id,
INNER JOIN usertype ON user_details.type_id = usertype.id,
WHERE user_details.email = email;

SELECT * FROM user_details;
END;
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900