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

时间:2010-11-19 12:42:36

标签: mysql

我想使用单个查询从2个表中获取前10条记录,这些记录的id作为引用ID。

例如,我有studentStudent_details个表格。

现在我想获取student表的前5条记录和Student_details表的前5条记录。

5 个答案:

答案 0 :(得分:2)

您是否希望将两个表的结果合并为1个结果集?

如果是,请使用

SELECT student.*, student_details.*
FROM student, student_details
WHERE student.id = student_details.student_id
ORDER BY id ASC LIMIT 5;

答案 1 :(得分:1)

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

答案 2 :(得分:0)

SELECT * FROM STUDENTS ORDER BY ID LIMIT 5

答案 3 :(得分:0)

SELECT * FROM table WHERE ... ORDER BY ... DESC/ASC LIMIT 5;

做两次。

答案 4 :(得分:0)

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

您可以做的最好的事情是使用两个查询:

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