Bird
0
0

Which SQL query correctly updates only those rows?

hard📝 Application Q9 of 15
SQL - Table Relationships
You have tables Employee and EmployeeDetails with a one-to-one relationship. You want to add a new column 'EmergencyContact' to EmployeeDetails but only for employees who have a detail record. Which SQL query correctly updates only those rows?
AUPDATE EmployeeDetails SET EmergencyContact = '123-456' WHERE EmployeeID IN (SELECT * FROM Employee);
BUPDATE Employee SET EmergencyContact = '123-456' WHERE EmployeeID IN (SELECT EmployeeID FROM EmployeeDetails);
CUPDATE EmployeeDetails SET EmergencyContact = '123-456';
DUPDATE EmployeeDetails SET EmergencyContact = '123-456' WHERE EXISTS (SELECT 1 FROM Employee WHERE Employee.EmployeeID = EmployeeDetails.EmployeeID);
Step-by-Step Solution
Solution:
  1. Step 1: Identify the correct table to update

    EmergencyContact is in EmployeeDetails, so update must target this table.
  2. Step 2: Filter rows with matching EmployeeID in Employee

    Using WHERE EXISTS with correlated subquery ensures only EmployeeDetails rows linked to Employee are updated.
  3. Final Answer:

    UPDATE EmployeeDetails SET EmergencyContact = '123-456' WHERE EXISTS (SELECT 1 FROM Employee WHERE Employee.EmployeeID = EmployeeDetails.EmployeeID); -> Option D
  4. Quick Check:

    Use WHERE EXISTS for conditional update in one-to-one [OK]
Quick Trick: Use WHERE EXISTS to update related one-to-one rows [OK]
Common Mistakes:
MISTAKES
  • Updating Employee instead of EmployeeDetails
  • Updating all EmployeeDetails without filter
  • Using IN with unrelated subquery

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More SQL Quizzes