我需要一个连接来从这个表中检索信息吗?

8ftvxx2r  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(304)

这个问题在这里已经有答案了

如何选择最大值(列值)的行,与sql中的另一列不同(19个答案)
两年前关门了。
我的mysql数据库中有两个表,我通过php添加和检索信息。
第一个包含如下条目:

id   username

21   user123
22   user65

第二个,包含如下条目:

level   id    value

1       21    188
2       21    333
3       21    567
1       22    78

表1中的id与表2中使用的id相同。我试图检索表2中最高“级别”的“值”。目前,我可以通过以下方式获得任何给定id的最高级别:

query("SELECT MAX( level ) AS max FROM `table2` WHERE `id` LIKE '".$table1ID."'");

我陷入困境的地方是如何根据特定的“level”和“id”获取“value”,是否需要连接?
edit:我需要的是一个sql语句,它将返回'567',因为这是与'id'21的最高'level'关联的'value'。基本上,对于表2,给定一个“id”(例如21),sql语句将找到该“id”的最高“level”,并返回“value”,即567。

nnsrf1az

nnsrf1az1#

尝试

<?php
$query = "SELECT t1.username,t2.MAX(level), t2.value from table2 t2 join table1 t1 on t2.id = t1.id WHERE tzblr2.level = 3 GROUP BY t1.username"
?>

为所有用户检索表2.max level的值。
这是一个最大等级和价值只为一个特定的用户(最大)

<?php
$query = "SELECT t2.MAX(level), t2.value from table2 t2 join table1 t1 on t2.id = t1.id WHERE tzblr2.level = 3 WHERE t1.id = ".$id.";";
?>
vulvrdjw

vulvrdjw2#

只需使用子查询:

select t2.*
from table2 t2
where t2.level = (select max(tt2.level) from table2 tt2 where tt2.id = t2.id);

相关问题