从同一查询中的两个不同表中获取数据

时间:2015-10-22 06:31:19

标签: php sql left-join

我开始学习php。我能够从[在此表] [1]中的SQL查询中提取CD列表,但是还有另一个查询,其中包含通过此表中的ID链接的类别。

如何使用一个查询获取同一结果集中的所有列?

 <?php
    include 'database_conn.php';    

    $sql = "SELECT id, title, year, price FROM table_cd"; 
    $queryresult = mysqli_query($conn, $sql)
    or die (mysqli_error($conn));       


    while($row = mysqli_fetch_assoc($queryresult)) {
        $iid = $row['id'];
        $title = $row['title'];
        $year = $row['year'];
        $price = $row['price'];

        echo "<div> 
        <a href = \"editCDForm.php?itemCode=$iid\">$title</a> 
        </div>\n";
        echo $row['year'];
        echo $row['price'];
    }

?>

editCDForm.php:

<?php

$code = $_GET['itemCode']; 
$sql = "SELECT * FROM table_cd WHERE table_category.ID = $code
JOIN table_category ON (table_category.Desc = table_cd.ID)";

?>

2 个答案:

答案 0 :(得分:2)

您正在寻找的是JOIN,它允许您将两个或多个表中的行合并到同一个结果集中。

您可以使用JOIN表格的 LEFT nmc_cdnmc_category表格修改您的查询,如下所示: } column,作为它们之间的公共主要属性,为您提供所需的结果集...

catID

这是一篇很好的文章,可以帮助你在SQL中visualize what a JOIN looks like

连接语法:

$sql = "SELECT nmc_cd.CDID, nmc_cd.CDTitle, nmc_cd.CDYear,
               nmc_cd.CDPrice, nmc_category.catDesc
        FROM nmc_cd
        JOIN nmc_category on nmc_cd.catID = nmc_cd.catID";

答案 1 :(得分:0)

use可以在加入时从两个表中获取数据:

 $sql = "SELECT FT.CDID, FT.CDTitle, FT.CDYear, FT.CDPrice,
 ST.catDesc FROM nmc_cd AS FT  LEFT JOIN nmc_category as ST ON     
 FT.catID=ST.catID";