簡體   English   中英

錯誤代碼:1052-字段列表中的列“ idk”不明確

[英]Error Code: 1052 - Column 'idk' in field list is ambiguous

嗨,我嘗試創建查詢並將其添加,查詢錯誤:

JOIN matakuliah ON nilai.idk = matakuliah.idk
WHERE matakuliah.semester = 1

完整查詢:

SET @sql_dinamis = ( SELECT GROUP_CONCAT( DISTINCT CONCAT( 'max( IF(idk = ', idk, ',huruf,null) ) AS A', idk ) ) FROM nilai  );

SET @SQL = CONCAT( 'SELECT mahasiswa.nim, mahasiswa.nama, ', @sql_dinamis, ' 
FROM nilai
JOIN mahasiswa ON nilai.idm = mahasiswa.idm
JOIN matakuliah ON nilai.idk = matakuliah.idk
WHERE matakuliah.semester = 1
GROUP BY nilai.idm' );
PREPARE stmt 
FROM
@SQL;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

錯誤信息:

FROM nilai
JOIN mahasiswa ON nilai.idm = mahasiswa.idm
JOIN matakuliah ON nilai.idk = matakuliah.idk
WHERE matakuliah.semester = 1
GROUP BY nilai.idm' )
> OK
> Time: 0s


PREPARE stmt 
FROM
@SQL
> 1052 - Column 'idk' in field list is ambiguous
> Time: 0s

幫我解決這個問題。

這是我的數據庫https://irhas.online/test/test2.txt,請幫助我。

您的查詢具有對idk的引用(來自@sql_dinamis部分),但是您的nilaimatakuliah都具有idk字段,因此SQL不知道您要哪個。 您需要在其中更改idk

SET @sql_dinamis = ( SELECT GROUP_CONCAT( DISTINCT CONCAT( 'max( IF(idk = ', idk, ',huruf,null) ) AS A', idk ) ) FROM nilai  );

例如為nilai.idkmatakuliah.idk

SET @sql_dinamis = ( SELECT GROUP_CONCAT( DISTINCT CONCAT( 'max( IF(nilai.idk = ', idk, ',huruf,null) ) AS A', idk ) ) FROM nilai  );

這對我有用 (請參閱DBFiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM