我有以下结构两个表: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