我是否需要联接才能从此表中检索信息?

时间:2018-12-01 02:56:32

标签: php mysql sql

我的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。

2 个答案:

答案 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.";";
?>