使用外键从其他表中获取数据

时间:2016-12-01 12:15:36

标签: php mysql

我有两张桌子,每个cursus都有一个用外键连接的cursussoort。 我试图从cursussoort表中获取数据以显示在while循环中。 cursussoort_ID显示的ID很明显,但我如何得到“naam'有没有cursussoort表?

tables

<?php
$result = mysqli_query($con, "SELECT * FROM cursus WHERE cursussoort_ID = 1 ORDER BY begindatum ASC");
while ($cursus = mysqli_fetch_array($result)) {
?>
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
  <div class="post-preview">
      <h2 class="post-title">
        <?php echo $cursus['cursussoort_ID'];?>
        <?php echo $cursus['begindatum'] . "<br />";?>

      </h2>
      <h3 class="post-subtitle">
        <?php echo $cursus['beschrijving'] . "<br />";?>
      </h3>
  </div>
</div>
<?php } ?>

3 个答案:

答案 0 :(得分:1)

您应该在SQL语句中JOIN加入来自2个表的数据:

SELECT c.*, cs.* FROM cursus c 
INNER JOIN cs.cursussoort ON c.cursussoort_ID = cs.ID 
WHERE c.cursussoort_ID = 1 
ORDER BY begindatum ASC

然后您可以用HTML显示它:

<?php
$result = mysqli_query($con, "SELECT c.*, cs.* FROM cursus c INNER JOIN cs.cursussoort ON c.cursussoort_ID = cs.ID WHERE c.cursussoort_ID = 1 ORDER BY begindatum ASC");
while ($cursus = mysqli_fetch_array($result)) {
?>
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
  <div class="post-preview">
      <h2 class="post-title">
        <?php echo $cursus['cursussoort_ID']; ?>
        <?php echo $cursus['naam']; ?><br />
        <?php echo $cursus['begindatum']; ?><br />
      </h2>
      <h3 class="post-subtitle">
        <?php echo $cursus['beschrijving']; ?><br />
      </h3>
  </div>
</div>
<?php } ?>

答案 1 :(得分:1)

在表格之间执行JOIN,如

SELECT c.* 
FROM cursus c
JOIN  cursussoort cr ON c.ID = cr.cursussoort_ID
WHERE c.cursussoort_ID = 1 
ORDER BY c.begindatum

答案 2 :(得分:1)

尝试左外连接

主要查询是

`SELECT * FROM cursus c LEFT OUTER JOIN cursussoort cr ON (c.cursussoort_ID = cr.id)  WHERE cursussoort_ID = 1 ORDER BY c.begindatum ASC`