MySQL 'tahun_pemilihan' 在 where 子句中有歧义

MySQL 'tahun_pemilihan' in where clause is ambigous

如何更正我不断从下面的代码中得到的问题,其中指出 'tahun_pemilihan' 在子句不明确的地方。提前感谢您的帮助。

这里是MySQLtable

 $sql = "SELECT 
              a.*, b.vektor_v FROM data_alternatif a, hasil b 
    WHERE a.id_alternatif=b.id_alternatif AND tahun_pemilihan='$thn'";

两个 table 都包含一个名为 tahun_pemilihan 的列,因此在 WHERE 子句条件中不清楚要使用哪个 table 的列;它应该使用 data_alternatif 中的结果还是 table hasil 中的结果?

WHERE 子句中用 a.tahun_pemilihan='$thn' 限定 data_alternatif.tahun_pemilihanb.tahun_pemilihan='$thn' 如果 hasil.tahun_pemilihan 是要使用的那个。

如果列名存在于您加入的两个 table 中,您可能会遇到列名不明确的错误。

在您的情况下,列名 tahun_pemilihan 存在于您的两个 table 中。

解决方案:

选择您将使用的两个 table 之一。 a.tahun_pemilihan='$thn'b.tahun_pemilihan='$thn'

https://www.quora.com/What-does-the-SQL-ambiguous-column-name-error-mean