unica tabla solucion not mysqlsyntaxerrorexception jdbc4 insertar formulario exceptions error desde datos con php mysql

solucion - MySQL y PHP-Tabla/alias no únicos



not unique table/alias mysql solucion (4)

Recibo el siguiente error que figura a continuación y me preguntaba cómo puedo solucionar este problema.

Not unique table/alias: ''grades''

Aquí está el código que creo que me está dando el problema.

function getRating(){ $dbc = mysqli_connect ("localhost", "root", "", "sitename"); $page = ''3''; $sql1 = "SELECT COUNT(*) FROM articles_grades WHERE users_articles_id = ''$page''"; $result = mysqli_query($dbc,$sql1); if (!mysqli_query($dbc, $sql1)) { print mysqli_error($dbc); return; } $total_ratings = mysqli_fetch_array($result); $sql2 = "SELECT COUNT(*) FROM grades JOIN grades ON grades.id = articles_grades.grade_id WHERE articles_grades.users_articles_id = ''$page''"; $result = mysqli_query($dbc,$sql2); if (!mysqli_query($dbc, $sql2)) { print mysqli_error($dbc); return; } $total_rating_points = mysqli_fetch_array($result); if(!empty($total_rating_points) && !empty($total_ratings)){ // set the width of star for the star rating $rating = (round($total_rating_points / $total_ratings,1)) * 10; echo $rating; } else { $rating = 100; echo $rating; } }


Debe usar un alias si usa el mismo nombre dos veces:

SELECT FROM grades g1 ... JOIN grades g2 ON g1.id = g2.grade_id ...

Asegúrese de que pretendía usar el mismo nombre dos veces, y no ingresó el mismo nombre por error dos veces.


El problema parece estar aquí:

SELECT COUNT(*) FROM grades JOIN grades ON grades.id = articles_grades.grade_id WHERE articles_grades.users_articles_id = ''$page''"

Usted está tratando de unir las calificaciones de la tabla a sí mismo. Probablemente quisiste unirte a articles_grades.


Pienso que en la consulta $ sql2 la segunda tabla no son calificaciones sino article_grades. Así será:

"SELECT COUNT(*) FROM grades JOIN articles_grades ON grades.id = articles_grades.grade_id WHERE articles_grades.users_articles_id = ''$page''"


está diciendo que debido a que tiene calificaciones de nombre de tabla en la consulta dos veces