1

我在下面有一个查询,它有效。

$query_for_cat3 = "SELECT   sum,candidate_no,@curRank := @curRank + 1 AS rank
FROM        (SELECT      SUM(score) / 5 SUM,candidate_no
          FROM        SCORE 
          WHERE category_no='$category_no1'
          GROUP BY    candidate_no
        ) a, ( SELECT @curRank := 0 ) r

ORDER BY    sum DESC,candidate_no DESC
LIMIT 5";

我需要做的是将此查询组合到另一个名为候选人的表中。它有candidate_no 和candidate_name 列。我想根据相应的candidate_no 生成candidate_name。

请帮忙。谢谢。

4

3 回答 3

1

这是你要找的东西吗?

SELECT temp.candidate_no,
       C.candidatename,
       temp.[sum],
       temp.rank
FROM candidate C INNER JOIN
(SELECT   sum,candidate_no,@curRank := @curRank + 1 AS rank
FROM        (SELECT      SUM(score) / 5 SUM,candidate_no
          FROM        SCORE 
          WHERE category_no='$category_no1'
          GROUP BY    candidate_no
        ) a, ( SELECT @curRank := 0 ) r

ORDER BY    sum DESC,candidate_no DESC
LIMIT 5) As temp

ON C.candidate_no=temp.candidate_no
于 2013-07-26T03:06:28.160 回答
0

你可以像这样加入

SELECT 
    table1.field
    table2.field
FROM 
    table1
LEFT JOIN 
    table2
ON 
    table1.field=table2.field
于 2013-07-26T03:05:51.093 回答
0

如果你想从两个表中选择数据,那么你需要在两个表中都有主键或外键方法......比如如果 Candidate_no 在一个表中作为主键,另一个表作为外键..然后使用它你可以访问数据为::

select * from table_name1 where Candidate_no=(select Candidate_no from table_name2 where name="Charn");

于 2013-07-26T04:20:03.483 回答