sql語句聯表查詢之(join on)

2021-07-09 06:27:34 字數 1649 閱讀 3552

表1:

---- 表的結構 `bumen`

--create table if not exists `bumen` (

`bid` int(10) not null auto_increment,

`mingcheng` varchar(30) default null,

`jingli` varchar(30) default null,

`tel` varchar(30) default null,

primary key (`bid`)

) engine=innodb  default charset=utf8 auto_increment=4 ;

---- 轉存表中的資料 `bumen`

--insert into `bumen` (`bid`, `mingcheng`, `jingli`, `tel`) values

(1, '技術部', '小雍', '15236018201'),

(2, '人事部', '小東', '15236015648'),

(3, '市場部', '小高', '154565648');

表2:--

-- 表的結構 `zhigong`

--create table if not exists `zhigong` (

`zid` int(10) not null auto_increment,

`name` varchar(30) default null,

`age` int(10) default null,

`zhiwu` varchar(30) default null,

`price` int(10) default null,

`bnumber` int(10) default null,

primary key (`zid`)

) engine=innodb  default charset=utf8 auto_increment=7 ;

---- 轉存表中的資料 `zhigong`

--insert into `zhigong` (`zid`, `name`, `age`, `zhiwu`, `price`, `bnumber`) values

(1, '小高', 40, '員工', 2000, 1),

(2, '李亮', 42, '員工', 2000, 2),

(3, '李亮', 42, '員工', 2000, 2),

(4, '小亮', 38, '員工', 2000, 2),

(5, '張三', 40, '員工', 2000, 3),

(6, '李四', 41, '員工', 2000, 2);

如:查詢 「人事部」年齡在40歲以上的職工號,姓名,職務,年齡;

有兩種查詢方式:

select z.zid,z.name,z.zhiwu,z.age from zhigong z join bumen b on z.bnumber=b.bid where b.mingcheng='人事部' and age>40;

select z.zid,z.name,z.zhiwu,z.age from zhigong z,bumen b where z.bnumber=b.bid and b.mingcheng='人事部' and age>40;

這兩個都可以;建議使用join...on

sql 語句 聯表查詢

1 replace into 用replace into 替代insert into 根據唯一主鍵判斷 無則插入,有則刪除重新插入 覆蓋 不適用自增id做主鍵。因為會刪除id.2.同表 分銷查詢下級每代的人數 內聯查詢 獲取第二代的人 select a.user name,a.reg time,a....

sql聯表查詢

比如 all list 這個表,是包含所有資料的,我們要把整個資料的某些字段查詢出來顯示在列表上 select from all list select 現在我要檢視一條資料,需要根據表 user list 的乙個字段內容,去檢視另外乙個表 info list 的內容 select dept nam...

針對SQL語句聯表查詢深入優化

容我裝個b,用深入這個詞 本文章只涉及到sql語句優化,未涉及框架注意哈 先解釋原理,自己總結的如果不對可以指出 這是乙個查詢指定使用者訂單擴充套件資訊的例子 聯表查詢對於資料庫效能的損耗是呈倍數增長 如orders,orders details 表各有1000條資料 單獨查詢乙個表時,我們算100...