鑑於以下兩個表: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