使用内部联接

时间:2017-11-10 09:18:29

标签: php html mysql

我从数据库表中获取一个表,我创建了一个表(文件),其中包含属性列,如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天

1 个答案:

答案 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