Zakaria
Zakaria

Reputation: 65

Using Two Tables to give one output

Table: Person

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| PersonId    | int     |
| FirstName   | varchar |
| LastName    | varchar |
+-------------+---------+

PersonId is the primary key column for this table.

Table: Address

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| AddressId   | int     |
| PersonId    | int     |
| City        | varchar |
| State       | varchar |
+-------------+---------+

AddressId is the primary key column for this table.

Write a SQL query for a report that provides the following information for each person in the Person table, regardless if there is an address for each of those people:

FirstName, LastName, City, State

So this is a pretty straight forward question and my answer is

select p.FirstName,p.LastName, a.City, a.State
from Person p , Address a
where p.PersonId = a.PersonId

And I'm not getting anything in the output and yes I filled up the tables with some simple lines of data.

Upvotes: 1

Views: 3574

Answers (2)

Shyambeer Singh
Shyambeer Singh

Reputation: 328

MySQL query

SELECT Person.FirstName, Person.LastName, Address.City, Address.State
FROM Person
LEFT JOIN Address
ON Person.PersonId=Address.PersonId;

Upvotes: 0

Littlefoot
Littlefoot

Reputation: 142705

Sample data would help, but - the way you described it, it looks as if you need outer join. Something like this:

select p.FirstName, p.LastName, a.City, a.State
from Person p left join Address a on a.personid = p.personid

Upvotes: 2

Related Questions