如何从php中的每个mysql表的特定行检索数据?

时间:2017-09-01 17:19:17

标签: php mysql

我有三个表作为h_basic,h_amenities和h_images与公共列u_name。有两个名为product-list和product-review的php页面。当我在产品列表页面上点击该产品的按钮时,我想在产品评论页面上获取特定产品的详细信息。

我有从单个表中检索单行的代码,但我想检索所有三个表中的特定行,并且我还想将u_name作为主要而不是id,因为id在所有表中都是变化的。

<?php
    $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : "0";
    $sql = ("SELECT h_basic.*, h_images.* FROM h_basic JOIN h_images WHERE h_basic.id = h_images.id");
    $result = mysql_query("$sql");
    while ($row = mysql_fetch_array($result)) { 
   echo $row['h_name']; echo $row['h_state'];
?>
<img src="images/<?php echo $row['h_image01'];?>"><img src="images/<?php echo $row['h_image02'];?>"><img src="images/<?php echo $row['h_image03'];?>"><img src="images/<?php echo $row['h_image04'];?>">
<?php }?>

表1:

enter image description here

表2:

enter image description here

1 个答案:

答案 0 :(得分:0)

只需使用匹配的任何字段作为ON

JOIN条件
SELECT B.*, I.*, A.*
FROM h_basic B
LEFT JOIN h_images I ON B.u_name = I.u_name
LEFT JOIN h_amenities A IN B.u_name = A.u_name

您需要添加WHERE子句才能获得特定名称

请注意,如果您在每个表上都有一个索引来加入字段

,这将会更快