鉴于以下两个表:SQL SELECT语句具有多个表的
Person table
id (pk)
first
middle
last
age
Address table
id(pk)
person_id (fk person.id)
street
city
state
zip
如何创建一个返回的人邮编97229的所有信息的SQL语句?
鉴于以下两个表:SQL SELECT语句具有多个表的
Person table
id (pk)
first
middle
last
age
Address table
id(pk)
person_id (fk person.id)
street
city
state
zip
如何创建一个返回的人邮编97229的所有信息的SQL语句?
Select * from people p, address a where p.id = a.person_id and a.zip='97229';
或者使用JOIN
这是在下面还评论这样做,因为戈登·利诺夫一个更有效率和更好的方式必须TRY说,你需要学习这一点。
SELECT p.*, a.street, a.city FROM persons AS p
JOIN address AS a ON p.id = a.person_id
WHERE a.zip = '97299';
这里p.*
表示它将显示人员表的所有列。
就像是:
SELECT p.*, a.street, a.city FROM persons AS p
JOIN address AS a ON p.id = a.person_id
WHERE a.zip = '97299'
你需要加入两个表:
select p.id, p.first, p.middle, p.last, p.age,
a.id as address_id, a.street, a.city, a.state, a.zip
from Person p inner join Address a on p.id = a.person_id
where a.zip = '97229';
这会从两个表中选择所有列。您当然可以通过在select
条款中选择不同的列来限制这一点。
首先选择从人表中的所有记录,然后再加入所有这些记录与另一个表“地址” ......现在u有所有谁都有自己的地址表中的地址的人的记录...所以最后通过筛选记录邮政编码。
select * from Person as P inner join Address as A on
P.id = A.person_id Where A.zip='97229'
select P.*,
A.Street,
A.City,
A.State
from Preson P
inner join Address A on P.id=A.Person_id
where A.Zip=97229
Order by A.Street,A.City,A.State
我只是不知道从哪里开始。我明白如何从一个表,即SELECT * FROM WHERE人首先=“约翰”选择,但它在我迷路 – user1420913
正是我需要的表的结合!感谢你保持简单。 – user1420913