Mysql 选择空列
我编写了一个查询,它正在选择有时为空的列Mysql 选择空列,mysql,Mysql,我编写了一个查询,它正在选择有时为空的列 $q = "SELECT g.id AS gameid,g.home_user, g.home_user2, g.away_user, g.away_user2, g.home_score, g.away_score, g.date_confirmed, g.type, h1.username AS home_username, h2.username AS home_username2, a1.username AS away_us
$q = "SELECT g.id AS gameid,g.home_user, g.home_user2, g.away_user, g.away_user2, g.home_score, g.away_score, g.date_confirmed, g.type,
h1.username AS home_username, h2.username AS home_username2, a1.username AS away_username2, a2.username AS away_username2
FROM ".TBL_FOOT_GAMES." g
INNER JOIN ".TBL_USERS." h1 ON h1.id = g.home_user
INNER JOIN ".TBL_USERS." h2 ON h2.id = g.home_user2
INNER JOIN ".TBL_USERS." a1 ON a1.id = g.away_user
INNER JOIN ".TBL_USERS." a2 ON a2.id = g.away_user2
WHERE g.status = '$status'
ORDER BY g.date_confirmed DESC LIMIT 25";
柱子
家庭用户2和外出用户2
有时可以为空。显然,这似乎阻止了查询显示任何返回的数据。
当我从查询中删除这些列时,我得到了一个返回。
包含它们并不是抛出错误,只是简单地不选择任何行
如何解决这个问题?您需要在这些列上使用内部联接,而不是内部联接
$q = "SELECT g.id AS gameid,g.home_user, g.home_user2, g.away_user, g.away_user2, g.home_score, g.away_score, g.date_confirmed, g.type,
h1.username AS home_username, h2.username AS home_username2, a1.username AS away_username2, a2.username AS away_username2
FROM ".TBL_FOOT_GAMES." g
INNER JOIN ".TBL_USERS." h1 ON h1.id = g.home_user
LEFT JOIN ".TBL_USERS." h2 ON h2.id = g.home_user2
INNER JOIN ".TBL_USERS." a1 ON a1.id = g.away_user
LEFT JOIN ".TBL_USERS." a2 ON a2.id = g.away_user2
WHERE g.status = '$status'
ORDER BY g.date_confirmed DESC LIMIT 25";
啊,我终于可以使用左连接了!干杯,巴德:)