我从数据库表中获取一个表,我创建了一个表(文件),其中包含属性列,如id,name,process和action,当用户输入任何操作然后操作时value转到另一个数据库表( update_table ),第二个表列是id,reason和update date, 现在当用户没有在更新表中输入数据时 代码是
if(isset($_GET['post_id']))
{
$page_id=$_GET['post_id'];
$query="SELECT files.id, files.file_name , files.recieved_by , files.processed_by , files.purpose, files.address , files.contact_no , files.date ,update_table.reason,update_table.update_date FROM files INNER JOIN update_table ON files.id=update_table.id WHERE files.id='$page_id'";
$run=mysqli_query($con,$query);
if(mysqli_num_rows($run)>0)
{
$row=mysqli_fetch_array($run);
$id =$row['id'];
$fname=$row['file_name'];
$recieved=$row['recieved_by'];
$processed=$row['processed_by'];
$purpose=$row['purpose'];
$address=$row['address'];
$contact=$row['contact_no'];
$status=$row['reason'];
}
}
并且在输出中,表应显示没有更新表值的行信息 当用户在更新表中输入数据时,输入应在一个查询中显示update_table和file table列。 当我使用这样的查询时
SELECT * FROM files WHERE files.id'$page_id' union SELECT files.id, files.file_name , files.recieved_by , files.processed_by , files.purpose, files.address , files.contact_no , files.date , update_table.reason,update_table.update_date FROM files INNER JOIN update_table ON files.id=update_table.id WHERE files.id='$page_id'
但是出局即将到来 使用过的SELECT语句有不同数量的列,请帮助我,我对此持续了3天
答案 0 :(得分:1)
SELECT files.id , files.file_name,files.recieved_by,files.processed_by ,files.purpose,files.address,files.contact_no,files.date , update_table.reason,update_table.update_date FROM files LEFT JOIN update_table ON files.id=update_table.id WHERE files.id='$page_id'
使用LEFT JOIN而不是INNER JOIN