Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择空列_Mysql - Fatal编程技术网

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";

啊,我终于可以使用左连接了!干杯,巴德:)