比较来自不同表的2个字段

时间:2014-12-08 08:42:59

标签: php database postgresql key

我正在制作体育精选网站。我在一张桌子中赢得了比赛胜利,然后是用户在另一张桌子中挑选的球队。我需要帮助编写将比较这两个字段的PHP代码,如果它们相同,那么你将增加一个win变量,如果它们不是,你会增加损失列。问题是这个团队项目的程序员退出了我,我以前没有用PHP做过任何事情。只是让我把数据库插入数据库,今天花了我12个小时大声笑。所以也许这里有人可以帮助我,所以不会花这么长时间。我将发布2个表格,我将从中获取信息。

1 个答案:

答案 0 :(得分:0)

当SQL可以更好地完成这项工作时,不要打扰代码。请注意,下面的查询假设ws.week_no和ws.game_no创建一个独特的游戏,如果不是你有一些数据问题。无论哪种方式,最好的做法是user_picks和weekly_stats有一个唯一的ID字段来关联记录和加入。你的weekly_stats_away_fkey和weekly_stats_home_fkey的情况相同,那些应该是int key相关的,因为当Redskins最终被迫改变他们的名字时你会做什么!

$db = new PDO("pgsql:dbname=YOUR_DB;host=localhost", "username", "password" );
$sql = "select up.username, count(case when up.pick=ws.winner then 1 end) as wins, count(case when up.pick!=ws.winner then 1 end) as losses from user_picks up left join weekly_stats ws on up.week_no = ws.week_no and up.game_no = ws.game_no group by up.username";
foreach ($db->query($sql) as $row)
{
    print $row['username'] .': '. $row['wins'] . '/' . $row['losses'] . '<br />';
}