SQL从其他表中选择评级

时间:2018-03-07 14:40:25

标签: php sql

我有2张桌子

  1. 使用列user_id
  2. 的表“users”
  3. 表格“额外”,列评级和列user_id
  4. 如何选择2个表并按评级对其进行排序?

    我的查询

    SELECT
       USER_ID,
       SUM(RATING) 
    FROM
       USERS,
       EXTRA 
    WHERE
       EXTRA.USER_ID = '{$row['USER_ID']}'
    
      字段列表中的

    user_id”不明确

2 个答案:

答案 0 :(得分:1)

从不FROM子句中使用逗号。 始终使用正确的显式JOIN语法。

除此之外,查询过于复杂。您只需要引用一次表:

SELECT e.USER_ID, SUM(e.RATING) 
FROM EXTRA e
WHERE e.USER_ID = '{$row['USER_ID']}';

附加说明:

  • 为表名提供表别名,通常是表名的缩写。这使查询更容易编写和阅读。
  • 限定查询中的所有列名称。
  • 不要使用参数值来查询字符串。 SQL为此提供了参数占位符。

因此查询看起来应该更像:

SELECT e.USER_ID, SUM(e.RATING) 
FROM EXTRA e
WHERE e.USER_ID = ?

答案 1 :(得分:0)

您的两个表都有user_id列。您必须指定要选择的那个:

SELECT users.user_id, SUM(rating) FROM users, extra WHERE extra.user_id ='{$row['user_id']}'