表1: person
+
----
----
-----+
----
-----+
| 列名 | 型別 |+--
----
-------
+---------
+| personid |
int|
| firstname | varchar |
| lastname | varchar |+--
----
-------
+---------
+personid 是上表主鍵
表2: address
+
----
----
-----+
----
-----+
| 列名 | 型別 |+--
----
-------
+---------
+| addressid |
int|
| personid |
int|
| city | varchar |
| state | varchar |+--
----
-------
+---------
+addressid 是上表主鍵
firstname, lastname, city, state
sql schema
drop
table
ifexists person;
create
table person ( personid int
, firstname varchar
(255
), lastname varchar
(255))
;drop
table
ifexists address;
create
table address ( addressid int
, personid int
, city varchar
(255
), state varchar
(255))
;insert
into person ( personid, lastname, firstname )
values(1
,'wang'
,'allen');
insert
into address ( addressid, personid, city, state )
values(1
,2,'new york city'
,'new york'
);
solution
2個表,保留其中乙個表,那麼可以用左連線表, 左邊是全部的資訊,右邊是部分的資訊,題中說的是不管有沒有位址資訊,也就是address
表中的addressid
可有可無, 因此address
在右邊
select
firstname,
lastname,
city,
state
from
person p
left
join address a
on p.personid = a.personid;
175 組合兩個表
表1 person 列名 型別 personid int firstname varchar lastname varchar personid 是上表主鍵 表2 address 列名 型別 addressid int personid int city varchar state varchar ...
175 組合兩個表
sql架構 表1 person 列名 型別 personid int firstname varchar lastname varchar personid 是上表主鍵 表2 address 列名 型別 addressid int personid int city varchar state va...
175 組合兩個表
表1 person personid primary key,int firstname varchar lastname varchar personid 是上表主鍵 表2 address addressid primary key,int personid int city varchar st...