我有以下結構兩個表:MySQL查詢幫助
TABLE_1
No Name
1 Test1
2 Test2
2 Test3
TABLE_2
t_no t_name no
1 tname1 1
2 tname2 2
我如何編寫一個查詢得到結果下面
t_no t_name Name
1 tname1 Test1
2 tname2 Test3
在Table1
兩個記錄具有相同id
但不同的值(即難度)。
我有以下結構兩個表:MySQL查詢幫助
TABLE_1
No Name
1 Test1
2 Test2
2 Test3
TABLE_2
t_no t_name no
1 tname1 1
2 tname2 2
我如何編寫一個查詢得到結果下面
t_no t_name Name
1 tname1 Test1
2 tname2 Test3
在Table1
兩個記錄具有相同id
但不同的值(即難度)。
假設你的表被命名爲table_1
和table_2
SELECT
table_2.t_no,
table_2.t_name,
table_1.Name
FROM table_1 JOIN table_2 ON table_1.no = table_2.t_no
或另一種方法:
SELECT
table_2.t_no,
table_2.t_name,
table_1.Name
FROM table_1, table_2
WHERE table_1.no = table_2.t_no
表1有2個記錄值,所以我們怎樣才能得到Test3 – 2011-03-18 14:48:42
有了這個表結構,你就不能得到Test3了。表1中必須有一個標識(主鍵)列,它與表1以1:1直接相關。否則,您將始終得到兩個值,其中'No = 2' – 2011-03-18 14:52:40
SELECT
grpt1.t_no,
grpt1.t_name,
table_2.Name
FROM table_2
JOIN
(SELECT t_no
, MAX(t_name)
FROM table_1
GROUP BY t_no
) AS grpt1
ON table_2.no = grpt1.t_no
你怎麼決定要TEST3而不是test2的?從關係的角度來看,它們是平等的。你應該在table1中有一個不同於這兩個值的列(NO_ORDER或其他) – Konerak 2011-03-18 14:46:36
表1中的第三行有錯誤嗎?它應該是'3 Test3'嗎? – 2011-03-18 14:48:31
沒有......只有這樣 – 2011-03-18 14:49:24