繁体   English   中英

SQL从其他表中选择等级

[英]SQL select rating from other table

我有2张桌子

  1. 表“用户”的列user_id
  2. 表“额外”的列等级和列user_id

如何选择2个表格并按评分排序?

我的查询

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

user_id ”在字段列表是不明确

请勿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 = ?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM