14

次の2つのテーブルがあるとします。

Person table 
id (pk) 
first 
middle 
last 
age

Address table 
id(pk) 
person_id (fk person.id) 
street 
city 
state 
zip

郵便番号97229のユーザーのすべての情報を返すSQLステートメントを作成するにはどうすればよいですか?

4

5 に答える 5

39
Select * from people p, address a where  p.id = a.person_id and a.zip='97229';

または、以下のコメントでゴードン・リノフJOINもこれを学ぶ必要があると言っているので、これを行うためのより効率的でより良い方法を使用してみる必要があります。

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.*は、PERSONS テーブルのすべての列が表示されることを意味します。

于 2012-10-15T18:21:34.860 に答える
4

2 つのテーブルを結合する必要があります。

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もちろん、句で別の列を選択することで、それを制限できます。

于 2012-10-15T18:21:02.093 に答える
1

最初に人物テーブルからすべてのレコードを選択し、次にこれらすべてのレコードを別のテーブル「住所」と結合します...これで、住所テーブルに住所を持つすべての人物のレコードがあります...最後に郵便番号でレコードをフィルタリングします。

 select * from Person as P inner join Address as A on 
    P.id = A.person_id Where A.zip='97229'
于 2012-10-15T18:52:30.280 に答える
1

そのように:

SELECT p.*, a.street, a.city FROM persons AS p
JOIN address AS a ON p.id = a.person_id
WHERE a.zip = '97299'
于 2012-10-15T18:20:51.850 に答える
0
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
于 2013-03-20T14:44:01.050 に答える