我的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."'");
我陷入困境的是如何根据特定的“级别”和“ id”获取“值”,是否需要联接?
编辑:我需要的是一条SQL语句,该语句将返回“ 567”,因为这是与“ id” 21的最高“级别”相关联的“值”。基本上,对于表2,给定了“ id” (例如21),sql语句将为该“ id”找到最高的“级别”,并返回“值”,即567。
答案 0 :(得分:2)
只需使用子查询:
select t2.*
from table2 t2
where t2.level = (select max(tt2.level) from table2 tt2 where tt2.id = t2.id);
答案 1 :(得分:-1)
尝试
<?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"
?>
检索所有用户的最大级别的table2.value。
这是针对maxlvu lvl的,仅针对特定用户(最大值)的值
<?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.";";
?>