Solved

HELP- How do i create a stored procedure that accepts a user Id and returns the user’s full name and occupation and 1 email address.

Posted on 2016-10-22
3
34 Views
Last Modified: 2016-11-11
drop procedure if exists userInformation $$


create procedure userInformation(in uID varchar(50), out fullname varchar(50), out job varchar(50), out email varchar(50))
begin
      select concat(firstname, ' ', lastname) into FULLNAME
      from users
      where userid = uID;
      
      select occupation into JOB
      from occupation
      join users on users.occupationID = occupation.occupationid
      where userid = uID;
      
      select useremail into EMAIL from useremail
      join users on useremail.userid = users.userid
      where userid = uID
      limit 1;
      
END$$

delimiter ;
call userInformation('00002380-3e3b-11e3-bbac-c42c03098f6c', @fullnam, @job, @email);
select @fullname, @job, @email;

I get this error when I try and call/select the procedure: Column 'userid' in where clause is ambiguous
0
Comment
Question by:Jim Jones
  • 2
3 Comments
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 500 total points (awarded by participants)
Comment Utility
At a guess instead of:
     select occupation into JOB
      from occupation
      join users on users.occupationID = occupation.occupationid
      where userid = uID;

it should be
     select occupation into JOB
      from occupation
      join users on users.occupationID = occupation.occupationid
      where users.userid = uID;

or (less likely based on your names):
     select occupation into JOB
      from occupation
      join users on users.occupationID = occupation.occupationid
      where occupation.userid = uID;


Basically specify which table when the field exists in more than one table
0
 
LVL 41

Expert Comment

by:pcelba
Comment Utility
Just a note: You are asking in MS SQL zone but your code seems to have MySQL syntax. Even when the answer is correct for both platforms the code cannot work under MS SQL Server.
0
 
LVL 44

Expert Comment

by:AndyAinscow
Comment Utility
The error message was typical for the field existing in two tables - specifying which table is to be used stops the ambiguity
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Suggested Solutions

Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Many companies are looking to get out of the datacenter business and to services like Microsoft Azure to provide Infrastructure as a Service (IaaS) solutions for legacy client server workloads, rather than continuing to make capital investments in h…
Via a live example, show how to set up a backup for SQL Server using a Maintenance Plan and how to schedule the job into SQL Server Agent.
Via a live example, show how to shrink a transaction log file down to a reasonable size.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now