使用外键查看关系表中的数据

时间:2016-04-06 05:14:30

标签: php mysql

尝试通过user_id从users表中获取数据,user_id是vehicle表中的外键。关系工作正常,就像我在车辆表中插入数据然后user_id也按预期插入,但问题是当我想使用user_id从users表中获取数据时。

我使用此SQL查询来查看数据

 <?php 
  $qry = mysql_query("select vehicle. *, users.zip AS zip from vehicle  JOIN users ORDER BY id DESC ");
  while($data = mysql_fetch_array($qry))

 {?>


  <tr role="row" class="even">

      <td style="display:none;"><?php echo $data['id'];?></td>  

      <td class="sorting_1">  <?php $datess = $data['create_date'];
         $old_date_timestamp = strtotime($datess);
         echo date('m-d-Y', $old_date_timestamp);?>

      </td>
      <td><?php echo $data['bid_type'];?></td>

      <td><?php echo $data['zip'];?></td>
      <td>
        <a href="bid-detail.php?id=<?php echo base64_encode($data['id']);?>" class="btn btn-success btn-small">$ Make Offer</a>
      </td>

   </tr>

<?php
 }
 ?>

此查询显示数据,但一次又一次地重复

任何人都可以帮助我解决问题或任何其他简单的解决方案。

2 个答案:

答案 0 :(得分:1)

您的查询中的问题。

您必须在查询中添加WHERE子句,该子句将使您的父表的PK与子表的FK相匹配。

试试这个:

select v.*, u.zip AS zip from vehicle as v,users as u WHERE v.user_id=u.user_id ORDER BY v.id DESC

答案 1 :(得分:0)

查询对我来说真的不对......

 "select vehicle. *, users.zip AS zip from vehicle  JOIN users ORDER BY id DESC "

这已经合并了两个表。要加入他们,请使用类似

的内容
"select * from vehicles as v, users as u where v.id = u.vehicle_id order by id desc"

或类似的东西。你需要指定两个表,即vehiclesusers,然后join在一些具有相同类型的列上,并希望在相同类型意味着逻辑上相同的东西,即它是否为#s;车辆ID或用户ID等。