2017-09-26 65 views
-1

我有幾個表,我想對MAHASISWASQL查詢複雜的聯接

NAMA的輸出WHERE NIM上MAHASISWA = NIM_MHS上MHS_MAKUL凡(N_TUGAS = 'C' AND N_MID = 'B' )AND ID_MHS_MAKUL ON NILAI_MAKUL = ID ON MHS_MAKUL

這裏表和列

列表MAHASISWA

NIM | NAMA

MHS_MAKUL

ID | NIM_MHS

NILAI_MAKUL

N_TUGAS | N_MID | ID_MHS_MAKUL

我試圖用這個,但給我的輸出「表‘mahasiswa.nim’不存在」

SELECT mahasiswa.NAMA, mahasiswa.NIM, mhs_makul.ID, nilai_makul.NIM_MHS, 
     nilai_makul.ID_mhs_makul 
FROM mahasiswa 
INNER JOIN mahasiswa.NIM ON mhs_makul.NIM_MHS 
INNER JOIN mhs_makul.ID ON nilai_makul.ID_mhs_makul 
WHERE nilai_makul.N_TUGAS = 'C' AND nilai_makul.N_MID = 'B'; 
+0

的說法INNER JOIN是一個表,但你使用的是一個字段 – fafl

+3

,選擇mysql和sql-server中的任何一個,它指的是不同的。 –

+0

@YogeshSharma編輯! –

回答

2

請學習JOIN語法。

SELECT mahasiswa.NAMA, mahasiswa.NIM, mhs_makul.ID, nilai_makul.NIM_MHS, nilai_makul.ID_mhs_makul 
FROM mahasiswa 
INNER JOIN mhs_makul ON mhs_makul.NIM_MHS = mahasiswa.NIM 
INNER JOIN nilai_makul ON nilai_makul.ID_mhs_makul = mhs_makul.ID 
WHERE nilai_makul.N_TUGAS = 'C' AND nilai_makul.N_MID = 'B'; 
0

嘗試以下查詢:

SELECT mahasiswa.NAMA, mahasiswa.NIM, mhs_makul.ID, nilai_makul.NIM_MHS, 
     nilai_makul.ID_mhs_makul 
FROM mahasiswa 
INNER JOIN mhs_makul ON mahasiswa.NIM = mhs_makul.NIM_MHS 
INNER JOIN nilai_makul ON mhs_makul.ID = nilai_makul.ID_mhs_makul 
WHERE nilai_makul.N_TUGAS = 'C' AND nilai_makul.N_MID = 'B'; 

Here'sJOIN的文檔,這是它是如何定義的:

table_reference [INNER | CROSS] JOIN table_factor [join_condition] 

所以,你需要在JOIN和列指定表名ON子句中的名稱

1

您的語法不正確。該join條款需要參照表,然後on條款具備的條件,此表由加入:

SELECT  mahasiswa.NAMA, 
      mahasiswa.NIM, 
      mhs_makul.ID, 
      nilai_makul.NIM_MHS, 
      nilai_makul.ID_mhs_makul 
FROM  mahasiswa 
INNER JOIN mhs_makul ON mahasiswa.NIM = mhs_makul.NIM_MHS 
INNER JOIN nilai_makul ON mhs_makul.ID = nilai_makul.ID_mhs_makul 
WHERE  nilai_makul.N_TUGAS = 'C' AND 
      nilai_makul.N_MID = 'B'; 
+0

工程就像一個魅力,謝謝! –

1

連接條件不寫吧,試試這個

SELECT mahasiswa.NAMA, mahasiswa.NIM, mhs_makul.ID, nilai_makul.NIM_MHS, nilai_makul.ID_mhs_makul 
FROM mahasiswa 
INNER JOIN mhs_makul 
ON mhs_makul.NIM_MHS = mahasiswa.NIM 
INNER JOIN nilai_makul 
ON nilai_makul.ID_mhs_makul = mhs_makul.ID 
WHERE nilai_makul.N_TUGAS = 'C' 
AND nilai_makul.N_MID = 'B';