【发布时间】:2017-09-24 16:17:01
【问题描述】:
您好,我正在尝试加入两个 MySQL 表。表格如下:
Table 1
Name: mlb_game_feed
Fields: game_feed_game_id, date, home_team, away_team
Table 2
Name: user_picks
Fields: pick_id, game_feed_game_id_fk, user_id_fk
这是我尝试用来连接两个表的 sql:
$sql = "
SELECT game_feed_game_id
, home_team
, away_team
, COUNT(1) as cnt
FROM game_feed_mlb
JOIN user_picks
ON user_picks.game_feed_game_id_fk = game_feed_mlb.game_feed_game_id
Where game_feed_mlb.date = '" . $_SESSION['date']."'
AND user_picks.user_id_fk = 1";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$count = $row["cnt"];
$game_id = $row["game_feed_game_id"];
$home_team = $row['home_team'];
$away_team = $row['away_team'];
echo $game_id;
}
}
我的目的是检查用户是否从 mlb_game_feed 表中选择了获胜者(home_team 或 away_team),以及他们是否有,我会将屏幕上的链接从 make_pick 更改为 change_pick(带有 if($count) 语句)。
但是,目前我什至没有取回任何数据,这意味着我的 sql 可能不正确。任何帮助都会很棒!谢谢。
【问题讨论】:
-
FROM、JOIN、ON和 `WHERE 子句之前需要空格。 -
谢谢....它有效...但是现在我发现我的逻辑不正确。目前只显示两个表中匹配的记录。我的意图是继续显示 mlb_game_feed 表中的所有记录,但根据是否在 user_picks 表中找到匹配记录,将附近的超链接从 make pick 更改为 change pick。我可能使用了错误的 JOIN 类型,因此我将进行更多研究。
-
OT:使用带有 sql 的预处理语句:stackoverflow.com/q/60174/5905665
-
@Strawberry ...感谢您的编辑。但是,您更改了 OP 的原始设置,根据他的评论,这是非结果的主要问题。即使内容包含问题,编辑也不应实质性地改变内容。 OP 和未来的读者不会知道原始问题。可以回滚吗?