[英]How to get two tables data using single mysql query?
以下是我的表格,學生證是兩個表格中的通用字段。 我想在單個查詢中獲取兩個表的數據,還獲取學生的最新數據。
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
您可以使用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
INNER JOINs
用於返回數據在兩個表中的數據(因此,entry將存在於tableA和tableB中)。
當您希望從表A中檢索所有數據以及表B中可用的那些值時,將使用LEFT JOINs
聯接。
所以,假設您有
TABLEA
-------
1
2
和
TABLEB
-------
1
SELECT *
FROM TABLEA INNER JOIN
TABLEB ON TABLEA.ID = TABLEB.ID
會回來
1,1
而
SELECT *
FROM TABLEA LEFT JOIN
TABLEB ON TABLEA.ID = TABLEB.ID
會回來
1,1
2,NULL
加入兩個表,
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.