㈠ 誰知道這個關聯表查詢sql語句怎麼寫
sql多表關聯查詢跟條件查詢大同小異,主要是要知道表與表之前的關系很重要;
舉例說明:(某資料庫中有3張表分別為:userinfo,dep,sex)
userinfo(用戶信息表)表中有三個欄位分別為:user_di(用戶編號),user_name(用戶姓名),user_dep(用戶部門) 。(關系說明:userinfo表中的user_dep欄位和dep表中的dep_id欄位為主外鍵關系,userinfo表中的user_sex欄位和sex表中的sex_id欄位為主外鍵關系)
dep(部門表)表中有兩個欄位分別為:dep_id(部門編號),dep_name(部門名稱)。(主鍵說明:dep_id為主鍵)
sex(性別表)表中有兩個欄位分別為:sex_id(性別編號),sex_name(性別名稱)。(主鍵說明:sex_id為主鍵)
一,兩張表關鍵查詢
1、在userinfo(用戶信息表)中顯示每一個用戶屬於哪一個部門。sql語句為:
selectuserinfo.user_di,userinfo.user_name,dep_namefromuserinfo,depwhereuserinfo.user_dep=dep.dep_id
2、在userinfo(用戶信息表)中顯示每一個用戶的性別。sql語句為:
selectuserinfo.user_di,userinfo.user_name,sex.sex_namefromuserinfo,sexwhereuserinfo.user_sex=sex.sex_id
二、多張表關鍵查詢
最初查詢出來的userinfo(用戶信息表)表中部門和性別都是以數字顯示出來的,如果要想在一張表中將部門和性別都用漢字顯示出來,需要將三張表同時關聯查詢才能實現。
sql語句為:
selectuserinfo.user_di,userinfo.user_name,dep.dep_name,sex.sex_namefromuserinfo,dep,sexwhereuserinfo.user_dep=dep.dep_idanserinfo.user_sex=sex.sex_id
(多個條件用and關聯)
㈡ sql語句查詢數據是和三張表有關聯的應該怎麼寫
select
a.*,b.*,c.*
from
a
inner
join
b
on
a.a1
=
b.b1
left
join
c
on
a.a2
=
c.c2
where
a.a1='xx'
主要用標准sql的inner
join
,left
join
,right
join
進行連接,左連,右連;
on
後面可以加括弧,加其他條件,也可以用括弧來確定先連接哪個再連接哪個
㈢ SQL中的聯表查詢,語句應該怎麼寫
兩種方法,1.用你第一個查詢作為子查詢和第二個表關聯。2.在你後面的查詢中的group by 中增加a.name,a.idsite
㈣ sql 表的關聯語句 怎麼寫
你結果顯示有問題吧,最後id=2怎麼來的?
創建表:
createtabletable1
(idint,
類別varchar(10),
貨號varchar(3))
insertintotable1values(1,'電子',顣')
insertintotable1values(2,'零件',顮')
insertintotable1values(3,'主板',项')
createtabletable2
(idint,
貨號varchar(3),
數量int)
insertintotable2values(1,顣',5)
insertintotable2values(2,顮',6)
insertintotable2values(3,项',-8)
insertintotable2values(4,顣',22)
insertintotable2values(5,顮',65)
insertintotable2values(6,项',81)
查詢:
selecta.id,a.類別,a.貨號,SUM(b.數量)
fromtable1a,table2bwherea.貨號=b.貨號anda.貨號=顣'
groupbya.id,a.類別,a.貨號
結果:
㈤ sql語句:一個表和另外兩個表的關聯語句
select * from a inner join b on a.bid=b.id inner jion c on a.cid=c.id
select * from a,b,c where a.bid=b.id and a.cid=c.id
㈥ 已經建立了兩個表,請問如何用SQL語句建立關聯
以下對ORACLE,SQL
SERVER等都適用:
自然連接(列名相同,只選相同列名下兩邊值相等的行):
SELECT
*
FROM
STUDENT
A
NATURAL
JOIN
SCORE
B
內連接(列名不一定相同,只選滿足ON條件的行):
SELECT
*
FROM
STUDENT
A
INNER
JOIN
SCORE
B
ON
A.SNO
=
B.SNO
左外連接(列名不一定相同,只選滿足ON條件的行和左表的全部,右表填充空值):
SELECT
*
FROM
STUDENT
A
LEFT
OUTER
JOIN
SCORE
B
ON
A.SNO
=
B.SNO
右外連接(列名不一定相同,只選滿足ON條件的行和右表的全部,左表填充空值):
SELECT
*
FROM
STUDENT
A
RIGHT
OUTER
JOIN
SCORE
B
ON
A.SNO
=
B.SNO
全外連接(列名不一定相同,只選滿足ON條件的行和兩邊表的全部,無匹配的全部填充空值)
SELECT
*
FROM
STUDENT
A
FULL
OUTER
JOIN
SCORE
B
ON
A.SNO
=
B.SNO
全連接(笛卡爾積,所有行和所有行交叉組合形成新表)
SELECT
*
FROM
STUDENT
A
CROSS
JOIN
SCORE
B
㈦ 兩表關聯查詢SQL語句的,要怎麼寫
1、首先打開資料庫客戶端Navicat Premium 15工具,點擊並打開一個資料庫連接。
㈧ SQL語言中把資料庫中兩張表數據關聯起來的語句
1、創建兩張測試表,
create table test_cj(name VARCHAR(20), remark varchar2(20));
create table test_kc(name VARCHAR(20), remark varchar2(20));
2、插入測試數據
insert into test_cj values('xh','cj_1');
insert into test_cj values('kcdh','cj_2');
insert into test_cj values('cj','cj_3');
insert into test_kc values('kcdh','kc_1');
insert into test_kc values('kcm','kc_2');
㈨ sql 3個表關聯語句
這是三個問題把
1.select
姓名,學號
from
第一表
2。select
*
from
第一表
這題沒看明白
3.。select
*
from
第一表,第二表,第三表
where
第一表.學號=第三表學號
and
第二表.課程=第三表.課程
做這種的時候
注意什麼欄位是唯一的,像學號、身份證號、課程號這些都是唯一
㈩ 關聯 SQL 查詢語句怎麼寫
select 名字 from a,b
where a.id = b.aid
and b.名字 = "bob"
你說的太亂了 給你個類似形式,自己補充吧
a.id = b.aid就是把a,b兩個表相同的列關聯起來,然後再找b表中名字為bob的 也就是and後面的條件