如何使用单个mysql查询获取两个表的数据?
以下是我的表格,学生id是两个表格中的公共字段。我想在一次查询中获取两个表的数据。同时获取学生的最新数据如何使用单个mysql查询获取两个表的数据?,mysql,sql,join,Mysql,Sql,Join,以下是我的表格,学生id是两个表格中的公共字段。我想在一次查询中获取两个表的数据。同时获取学生的最新数据 table A: student_id name surname email ------------------------------------------------ 1 ABC LLL abc@gmail.com 2
table A:
student_id name surname email
------------------------------------------------
1 ABC LLL abc@gmail.com
2 PQR SSS pqr@gmail.com
Table B:
student_id Assignment_Id Assignment_Name last_submited
---------------------------------------------------------------------
2 1 asign_1 sub_0001
1 2 asign_2 sub_0002
2 3 asign_2 sub_0003
我想要准确的输出,如:-
student_id Assignment_Id email last_submited
--------------------------------------------------------------
2 3 pqr@gmail.com sub_0003
我使用了下面的查询来获取最近的记录,但不知道如何获取电子邮件id
SELECT assignment_id,
student_id,
last_submited
FROM tableB
WHERE student_id= '2'
ORDER BY assignment_id DESC LIMIT 1
将两个表连接起来
SELECT B.assignment_id,
B.student_id,
A.email_id ,
B.last_submited
FROM tableB 'B',
tableA 'A'
WHERE B.student_id= '2'
AND A.student_id=B.student_id
ORDER BY assignment_id DESC LIMIT 1
将两个表连接起来
SELECT B.assignment_id,
B.student_id,
A.email_id ,
B.last_submited
FROM tableB 'B',
tableA 'A'
WHERE B.student_id= '2'
AND A.student_id=B.student_id
ORDER BY assignment_id DESC LIMIT 1
您需要使用
join
SELECT a.student_id,
b.Assignment_id,
a.email,
b.last_submitted
FROM a
INNER JOIN b ON a.student_id = b.student_id
WHERE a.student_id= '2'
ORDER BY b.assignment_id DESC LIMIT 1
您需要使用
join
SELECT a.student_id,
b.Assignment_id,
a.email,
b.last_submitted
FROM a
INNER JOIN b ON a.student_id = b.student_id
WHERE a.student_id= '2'
ORDER BY b.assignment_id DESC LIMIT 1
您可以使用
JOIN
select tableB.assignment_id,
tableB.student_id,
tableB.last_submited,
tableA.email
from tableB INNER JOIN
tableA ON tableB.student_id = tableA.student_id
where tableB.student_id= '2'
order by tableB.assignment_id desc
limit 1
内部联接
用于返回数据,其中数据位于两个表中(因此en条目将存在于表A和表B中)
当您希望从表A中检索所有数据以及表B中可用的值时,将使用左联接
那么,假设你有
TABLEA
-------
1
2
及
会回来吗
1,1
1,1
2,NULL
鉴于
SELECT *
FROM TABLEA LEFT JOIN
TABLEB ON TABLEA.ID = TABLEB.ID
会回来吗
1,1
1,1
2,NULL
您可以使用JOIN
select tableB.assignment_id,
tableB.student_id,
tableB.last_submited,
tableA.email
from tableB INNER JOIN
tableA ON tableB.student_id = tableA.student_id
where tableB.student_id= '2'
order by tableB.assignment_id desc
limit 1
内部联接
用于返回数据,其中数据位于两个表中(因此en条目将存在于表A和表B中)
当您希望从表A中检索所有数据以及表B中可用的值时,将使用左联接
那么,假设你有
TABLEA
-------
1
2
及
会回来吗
1,1
1,1
2,NULL
鉴于
SELECT *
FROM TABLEA LEFT JOIN
TABLEB ON TABLEA.ID = TABLEB.ID
会回来吗
1,1
1,1
2,NULL
mysql或sql server。。。不能同时是HmySQL或sql server。。。汉克斯·阿斯塔特对我很好,谢谢你解释得很好。谢谢阿斯塔特对我很好,谢谢你解释得很好