代码之家  ›  专栏  ›  技术社区  ›  user455982

使用单个查询从两个表中获取前5条记录

  •  2
  • user455982  · 技术社区  · 14 年前

    我想从两张有 id 使用单个查询作为引用id。

    例如,我有 student Student_details 桌子。

    现在我想把 学生 表和前5项记录 学生详细信息 桌子。

    5 回复  |  直到 13 年前
        1
  •  2
  •   acme    14 年前

    是否将两个表的结果合并到一个结果集中?

    如果是,那么使用

    SELECT student.*, student_details.*
    FROM student, student_details
    WHERE student.id = student_details.student_id
    ORDER BY id ASC LIMIT 5;
    
        2
  •  1
  •   Svisstack    14 年前
    SELECT * FROM student ORDER BY id ASC LIMIT 5;
    SELECT * FROM student_details ORDER BY id ASC LIMIT 5;
    
        3
  •  0
  •   BeemerGuy    14 年前
    SELECT * FROM STUDENTS ORDER BY ID LIMIT 5
    
        4
  •  0
  •   Some Noob Student    14 年前
    SELECT * FROM table WHERE ... ORDER BY ... DESC/ASC LIMIT 5;
    

    做两次。

        5
  •  0
  •   Thariama    14 年前

    这是不可能的!您可以创建一个临时表,并以某种方式尝试匹配一个表的字段以匹配另一个表的字段(如果它们的字段数几乎相同),只有这样,您才能使用一个查询获得两个表的前5个结果。但即使这样,也会导致不止一个查询(因为必须先创建临时表)。

    最好使用两个查询:

    SELECT * FROM student ORDER BY student.id LIMIT 5;
    SELECT * FROM student_details ORDER BY student_details.id LIMIT 5;