Php 如果使用左联接在所有表中有一个列名相同,则打印列值
如果在select查询中使用的所有表中都有一个列名,那么如何使用LEFT JOIN方法来回显任何列值?下面是我的代码。我想在所有列中获得'app_id'值,但'app_id'不打印任何内容。app_id列在此查询中使用的所有4个表中都可用。它打印我想要显示的所有行,但app_id不返回任何值Php 如果使用左联接在所有表中有一个列名相同,则打印列值,php,mysql,mysqli,Php,Mysql,Mysqli,如果在select查询中使用的所有表中都有一个列名,那么如何使用LEFT JOIN方法来回显任何列值?下面是我的代码。我想在所有列中获得'app_id'值,但'app_id'不打印任何内容。app_id列在此查询中使用的所有4个表中都可用。它打印我想要显示的所有行,但app_id不返回任何值 <?php session_start(); include('../../connect.php'); $date = strtotime("+1 day", time()); $cdate
<?php
session_start();
include('../../connect.php');
$date = strtotime("+1 day", time());
$cdate = strtotime("-7 day", time());
$finaldate = date('Y-m-d', $date);
$scdate = date('Y-m-d', $cdate);
//$sql = "SELECT * FROM tblapps WHERE journeydate >= '".$finaldate."' AND appstatus = 'On-Hold' AND process = 'yes'";
$sql = "SELECT * from tblapps
LEFT JOIN tblapps2 ON tblapps.app_id = tblapps2.app_id
LEFT JOIN tblapps3 ON tblapps.app_id = tblapps3.app_id
LEFT JOIN payments ON tblapps.app_id = payments.app_id
WHERE
tblapps.journeydate >= '$finaldate' AND tblapps.appstatus = 'On-Hold' AND tblapps.process = 'yes'";
$result = $connect->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["app_id"]. " - Name: " . $row["firstname"]. " " . $row["journeydate"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
看到多个数据库后面都有数字,这通常是一种迹象,说明这里不对劲。如果需要分区,请使用MySQL表分区。不要使用多个数据库拼凑您自己的数据库。什么意思app\u id
不“打印”任何内容?您正在执行一个SELECT*
,这意味着您将返回4个app\u id
列。因此,结果集中没有明显的app\u id
列。摆脱糟糕的选择*
,然后从每个联接表中选择所需的列。然后按名称引用该列。如果您需要多个app\u id
列,则必须将它们别名为选择tblapps.app\u id作为app\u id1,tblapps.app\u id作为app\u id2,…。
然后帮自己一个忙,不要再在生产代码中写入SELECT*
。