php - Inner Join limit 左表结果限制为 1

标签 php mysql sql join

我有两张 table 。一个是学生,一个是成绩。现在 studetnt 表中的学生 ID 是唯一的,但一个学生在结果表中可以有多个行。

我想连接两个表并为每个学生生成一个结果行。该行将包含学生的信息(姓名、图像等)和最近的 学生成绩。

我已应用内部联接来实现此目的,但我在结果表中为每个条目获取了单独的行。如果我应用限制 1,它会给我结果,只有一个学生的数据,而不是每个学生的数据。

这里是查询:

SELECT students.id,
       students.roll_num,
       students.first_name,
       students.middle_name,
       students.last_name,
       students.course,
       students.photo_url,
       results.parano,
       results.grade
FROM students
RIGHT JOIN results ON results.std_id=students.id

这是我得到的结果:

enter image description here

最佳答案

recent student result is a key. This will complicate query...

SELECT
    st.id,
    st.roll_num,
    st.first_name,
    st.middle_name,
    st.last_name,
    st.course,
    st.photo_url,
    rs1.parano,
    rs2.grade 
FROM students st, results rs1, results rs2 
WHERE rs1.std_id=st.id AND rs2.std_id=st.id 
GROUP BY st.id
HAVING 
        count(rs1.parano) = 
        (SELECT count(rs.parano) 
        FROM results rs 
        WHERE rs.std_id=st.id 
        ORDER BY count(rs.parano) 
        LIMIT 1)
AND     count(rs2.grade) = (
        SELECT count(rs.grade) 
        FROM results rs 
        WHERE rs.std_id=st.id 
        ORDER BY count(rs.grade) 
        LIMIT 1)

关于php - Inner Join limit 左表结果限制为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23166754/

相关文章:

php - 响应式表和 mysql

MySQL:选择一定时期内具有一定数量的条目

PHP MySQL 连接查询

PHP Interactive - 从命令行加载文件

php - 我需要在 Symfony2 中使用命名空间吗?

mysql - Laravel 5.2 Eloquent 关系

php - datetime PHP 和 MySQL 的值不正确

php - 不带扩展名的文件名

c# - 将多行更新到 SQL 表中

sql - @@ROWCOUNT 检查未检测到零行数