【问题标题】:MySQL & PHP - Not unique table/aliasMySQL & PHP - 不是唯一的表/别名
【发布时间】:2010-01-16 12:40:50
【问题描述】:

我收到下面列出的以下错误,想知道如何解决此问题。

Not unique table/alias: 'grades'

这是我认为给我带来问题的代码。

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;
}
}

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    如果您两次使用相同的名称,则需要使用别名:

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

    请确保您打算使用两次相同的名称,并且没有错误地输入两次相同的名称。

    【讨论】:

    • 这帮助我解决了一个无关紧要的问题。谢谢!
    【解决方案2】:

    问题似乎出在这里:

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

    您正在尝试将表成绩连接到自身。您可能打算加入articles_grades。

    【讨论】:

    • ON 条件表明这是一个错字
    • 这似乎是一个很老的答案,但我被我认为JOIN grades应该是JOIN articles_grades的查询卡住了
    • @NarendrasinghSisodia 请编辑答案!我也不清楚
    【解决方案3】:

    这是因为您在查询中有两次表名等级

    【讨论】:

      【解决方案4】:

      我认为在 $sql2 查询中,第二个表不是等级,而是 article_grades。所以它会是:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-24
        • 2019-04-28
        相关资源
        最近更新 更多