mysql 兩個(gè)表中的信息關(guān)聯(lián)起來(lái)使用方法:
天鎮(zhèn)網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),天鎮(zhèn)網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為天鎮(zhèn)上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的天鎮(zhèn)做網(wǎng)站的公司定做!
1、創(chuàng)建主表:
create table UserInfo(
UserID int identity(1,1) primary key, --遞增主鍵
UserAccounts varchar(20),
UserName varchar(20),
UserPwd varchar(10));
2、創(chuàng)建附表(含外鍵)
create table News(
NewsID int identity(1,1) primarykey,
UserID int,
NewsTitle varchar( 50 ),
NewsRelease varchar( 200 ),
NewsReleaseTime datetime,
FOREIGN KEY (UserID) REFERENCES UserInfo(UserID)); --外鍵約束
如果附表已存在,但沒(méi)外鍵,可采用以下方法:
alter table profession add constraint fk_prov_id foreign key(prov_id) references province(prov_id) on update cascade on delete cascade;
你這個(gè)就是把 Car表的type_id 和Types表的 types_id 進(jìn)行關(guān)聯(lián)就可以 那你tpyes表中的type_id 就要是primarykey 給你說(shuō)個(gè)和你這個(gè)一樣簡(jiǎn)單的例子吧 表a id-客戶序號(hào) primary-key name-客戶名稱 表b id-序號(hào) nid-客戶序號(hào) products-產(chǎn)品 下面有增刪改查 insert into 表b (`nid`,`products`) values ('1','手機(jī)'); update 表b set `products` = '電話' where `nid` = '1' and `products` = 手機(jī)'; delete * from 表b where `nid` = '1' and `products` = 手機(jī)'; 如果你要查詢的話用下面這句: select b.products, a.name from 表b as b, 表a as a where 表b.uid = 表a.id
方法和操作步驟如下:
1、首先,創(chuàng)建一個(gè)測(cè)試表,如下圖所示,然后進(jìn)入下一步。
2、其次,插入測(cè)試數(shù)據(jù),如下圖所示,然后進(jìn)入下一步。
3、接著,完成上述步驟后,查詢表中的數(shù)據(jù),“select t.* from test_tbl2 t?”,如下圖所示,然后進(jìn)入下一步。
4、最后,完成上述步驟后,編寫sql,兩個(gè)表通過(guò)pid與id關(guān)聯(lián), “select t1.*, t2.* from test_tbl1 t1 join test_tbl2 t2 on t1.p_id = t2.id;”,如下圖所示。這樣,問(wèn)題就解決了。
left join
join
主外鍵是兩種對(duì)表的約束。
例如:
學(xué)生表student(學(xué)號(hào)(id),姓名(name),性別(sex))
表內(nèi)有:1,aa,女
課程表subject(課程編號(hào)(id),課程名(name))
表內(nèi)有:1,語(yǔ)文
成績(jī)表grade(成績(jī)編號(hào)(id),學(xué)號(hào)(stu_id),課程號(hào)(sub_id),成績(jī)(grade))
表內(nèi)有:1,1,1,90
成績(jī)表的學(xué)號(hào)就是學(xué)生表的學(xué)號(hào)相對(duì)應(yīng),并且為學(xué)生表的主鍵,這樣就稱成績(jī)表中的學(xué)號(hào)是學(xué)生表的外鍵,同理,成績(jī)表中的課程號(hào)是課程表的外鍵。
select * from ?student as s inner join subject as su on su.stu_id=s.id inner join grade as g on g.sub_id=su.id where 1.
擴(kuò)展資料:
注意事項(xiàng)
SQL 連接(JOIN) 子句用于把來(lái)自兩個(gè)或多個(gè)表的行結(jié)合起來(lái),基于這些表之間的共同字段。連接的結(jié)果可以在邏輯上看作是由SELECT語(yǔ)句指定的列組成的新表。
左連接與右連接的左右指的是以兩張表中的哪一張為基準(zhǔn),它們都是外連接。外連接就好像是為非基準(zhǔn)表添加了一行全為空值的萬(wàn)能行,用來(lái)與基準(zhǔn)表中找不到匹配的行進(jìn)行匹配。
假設(shè)兩個(gè)沒(méi)有空值的表進(jìn)行左連接,左表是基準(zhǔn)表,左表的所有行都出現(xiàn)在結(jié)果中,右表則可能因?yàn)闊o(wú)法與基準(zhǔn)表匹配而出現(xiàn)是空值的字段。
不同的 SQL JOIN可以使用的不同的 SQL JOIN 類型:
INNER JOIN:如果表中有至少一個(gè)匹配,則返回行
LEFT JOIN:即使右表中沒(méi)有匹配,也從左表返回所有的行
RIGHT JOIN:即使左表中沒(méi)有匹配,也從右表返回所有的行
FULL JOIN:只要其中一個(gè)表中存在匹配,則返回行(MySQL不支持FULL JOIN)
例如:
mysql select * from access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date? ? ? ?|
+-----+---------+-------+------------+
|? ?1 |? ? ? ?1 |? ? 45 | 2016-05-10 |
|? ?2 |? ? ? ?3 |? ?100 | 2016-05-13 |
|? ?3 |? ? ? ?1 |? ?230 | 2016-05-14 |
|? ?4 |? ? ? ?2 |? ? 10 | 2016-05-14 |
|? ?5 |? ? ? ?5 |? ?205 | 2016-05-14 |
|? ?6 |? ? ? ?4 |? ? 13 | 2016-05-15 |
|? ?7 |? ? ? ?3 |? ?220 | 2016-05-15 |
|? ?8 |? ? ? ?5 |? ?545 | 2016-05-16 |
|? ?9 |? ? ? ?3 |? ?201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set