希望有人可以帮助我。我在同一个问题上读过这么多问题,但没有人回答我的问题。我的PHP代码中有以下SQL SELECT语句:
$sql = "
SELECT DISTINCT
pics.piclocation,
pics.picid,
rating
FROM
pics,
ratings
WHERE
pics.milfid = ratings.picid
ORDER BY
ratings.rating DESC
";
然而,许多人都知道DISTINCT关键字不会一直消除重复的行。问题是同一张图片经常不止一次输出,即pics.piclocation。这个想法是每个pic的评级从1到5,然后插入到评级表中。
关于如何生成输出并消除重复piclocation行的任何想法?我希望根据哪个图片具有最多5个评级来列出图片,如果这有帮助的话。
谢谢!
答案 0 :(得分:1)
因此,如果您只想要评分为import rlp = require('readline');
const rl = rlp.createInterface({
input: process.stdin,
output: process.stdout
});
let prom = new Promise((fulfill, reject) => {
rl.question('Enter input: ', input => rl.close() && fulfill(input));
});
prom.then(result => {console.log(result); return prom})
.then(result => {console.log(result); return prom})
.then(result => console.log(result));
的图片,那么请继续选择该图片,然后您可以计算该图片已获得的图片的数量并按此顺序排序。然后,您还需要按照唯一标识符对图像进行分组,该图像看起来像5
和pics.milfid
。
ratings.picid
如果您只想获得评分最高的图片,那么您可以 SELECT
pics.piclocation,
pics.picid,
COUNT(ratings.rating) as nb_ratings
FROM
pics,
ratings
WHERE
pics.milfid = ratings.picid
AND ratings.rating = 5
GROUP BY
ratings.picid
ORDER BY
nb_ratings DESC
评分:
SUM
答案 1 :(得分:0)
在SQL中,多个字段也可以添加DISTINCT
子句。 DISTINCT
将消除所有选定字段相同的行。
SELECT DISTINCT column1, column2, ...
FROM table_name;
所以你可以试试这个:
$sql = "SELECT DISTINCT
pics.piclocation,
pics.picid,
ratings.rating
FROM pics JOIN ratings ON pics.milfid = ratings.picid
ORDER BY ratings.rating DESC";