从一个表中选择所有行,为另一个表中的每一行选择一个特定值

时间:2016-10-14 11:23:58

标签: php mysql sql select conditional-statements

下午好,小伙子们,我正在努力建立一个页面,我可以查看我今天做过哪些老板。我有两张桌子(有老板的桌子和老板时间的桌子)。现在我需要展示所有老板,但对于他们每个人我只想显示老板要产卵的最近时间。

到目前为止的选择看起来像这样:

$timePlus = strtotime($currentTime) + 60*60*2.2;
$timePlusForm = date("H:i:s", $timePlus);
$userNametoLower = strtolower($userName);
$userTableName = "".$userNametoLower."_bosses";
$currentTime = date("H:i:s", time());
"SELECT `bossTime`.`ID`, `bossTime`.`bossID`, `bossTime`.`time`, `$userTableName`.`ID`, `$userTableName`.`name`, 
                  `$userTableName`.`zone`, `$userTableName`.`map`, `$userTableName`.`waypointCode`, `$userTableName`.`bossDone`
                  FROM `bossTime` LEFT JOIN `$userTableName` ON `$userTableName`.`ID` = `bossTime`.`bossID`
                  WHERE `bossTime`.`time` BETWEEN '$currentTime' AND '$timePlusForm'
                  GROUP BY `bossTime`.`bossID`
                  ORDER BY `bossTime`.`time` ASC";

问题是此选择不会从时间表中选择下一个最接近的值。我也尝试了BETWEEN,它也没有用(一些老板得到了正确的最近时间,但其他人得到了第二个最接近的)。任何想法如何解决这个问题都是受欢迎的。

1 个答案:

答案 0 :(得分:0)

我删除了GROUP BY并将条件更改为WHERE bossTime.time> ='$ currentTime'和bossTime.time< ='$ timePlusForm'并且由于某种原因它可以正常工作