组合2个表以产生1个输出 - SQL

时间:2013-07-26 03:00:32

标签: mysql sql

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

$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的表结合起来。它有候选列candidate_no和candidate_name。我想根据相应的candidate_no生成候选名称。

请帮忙。感谢。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

你可以像这样进行连接

SELECT 
    table1.field
    table2.field
FROM 
    table1
LEFT JOIN 
    table2
ON 
    table1.field=table2.field

答案 2 :(得分:0)

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

从table_name1中选择*,其中candidate_no =(从table_name2中选择candidate_no,其中name =“Charn”);