mysql三表自然連線 MySQL外來鍵 自然連線

2021-10-18 15:41:38 字數 1360 閱讀 4055

scenario:

我一直試**決乙個問題,我希望在兩個表藝術家和**之間進行自然連線,其中藝術家將一列ar_id作為主鍵,而**包含乙個名為ar_id的列,其中**中的外來鍵table是ar_id,指的是藝術家ar_id . 表之間有一對多的關係(乙個藝術家可以有多個**) .

problem:

當我想在兩個表artist和albums之間進行natural join時,它會返回0行,但是當我使用where函式時,它是正常的join,它會返回18行 . 所以我猜問題是外來鍵設定,但我找不到問題

the select code with natural join (doesn't work):

select * from

artists natural join albums;

the select code with normal join where (does work):

select * from

artists join albums

where cdreg.artists.ar_id = cdreg.albums.ar_id;

dll for the two tables

create table artists (

ar_id int primary key,

ge_id int(11) default null,

country_code varchar(2) default null,

name varchar(45) not null,

start_year year(4) default null,

end_year year(4) default null,

foreign key (ge_id) references genres (ge_id),

foreign key (country_code) references countries (code)

create table albums (

al_id int primary key,

ar_id int,

name varchar(45) not null,

release_year year(4) default null,

foreign key (ar_id) references artists(ar_id)

在此先感謝任何幫助:)

[solved]:

我認為自然連線使用外來鍵來連線表,但它使用所有匹配的列名,包括列「 name 」(兩個表中的exsists),因為在資料庫中沒有任何藝術家具有同名** headers 結果是0行 . 解決方案是使用

select * from

artists join albums using(ar_id);

MYSQL自然連線

目標 了解自然連線的特性,知道自然連線的使用方式。概念 natural join,是一種自動尋找連線條件的連線查詢。重點 1.自然連線包含自然內連線和自然外連線。自然內連線 natural join 自然外連線 natural left right join 2.自然連線條件匹配模式 自動尋找相同欄...

mysql三個表連線 使用MySQL連線三個表

我有三個表名為 student table id name 1 ali 2 ahmed 3 john 4 king course table id name 1 physic 2 maths 3 computer 4 chemistry bridge sid cid 1 11 2 1 31 4 2 ...

mysql 連線三個表 使用MySQL連線三個表

使用mysql連線三個表 我有三張桌子 student table id name 1 ali 2 ahmed 3 john 4 king course table id name 1 physic 2 maths 3 computer 4 chemistry bridge sid cid 1 1 ...