如何从子查询中获取值

时间:2015-09-02 08:51:30

标签: mysql sql

这里我想使用当前表中的id从另一个表中获取用户名。

$sql = "SELECT product_name,product_category,product_image_url,product_proposed_user_id 
FROM product_list";

while($row = $result->fetch_assoc()) {
echo "<tr>
     <td>". $row["product_name"]."</td>
     <td>
       <a href=''><span class='glyphicon glyphicon-remove'></span>Remove</a>
     </td>
     <td>
      <a href='edit-product.php'><span class='glyphicon glyphicon-edit'></span>Edit</a>
     </td>
   </tr>";}

我在这里从表中获取详细信息。我在此查询中也有用户ID,但我想要做的是我想将用户ID引用到users表并获取该id的用户名并打印值

我该怎么做?如何使用子查询来执行此操作?

3 个答案:

答案 0 :(得分:3)

我没有看到你执行查询字符串的位置,你的代码应该是这样的:

$sql = "SELECT product_name,product_category,product_image_url,product_proposed_user_id   
       FROM product_list";
$result =$mysqli->query($sql);

while($row = $result->fetch_assoc()) {
        echo "<tr><td>". $row["product_name"].  
              "</td><td><a href=''><span class='glyphicon glyphicon-remove'></span>  
               Remove</a></td><td><a href='edit-product.php'>  
              <span class='glyphicon glyphicon-edit'></span>Edit</a></td></tr>";
        }  

以下是您的查询的修补程序(获取用户详细信息):

$sql = "SELECT p.product_name,p.product_category,p.product_image_url,  
        p.product_proposed_user_id,u.user_name   
FROM product_list p, user u   
WHERE p.product_proposed_user_id = u.user_id ";

答案 1 :(得分:0)

您可以将join与用户表一起使用:

$sql = "SELECT product_name,product_category,product_image_url,  
               product_proposed_user_id,u.user_name   
        FROM product_list pl   
        INNER JOIN users u on u.id = pl.product_proposed_user_id";

答案 2 :(得分:0)

您需要的是实际加入users表(获取名称):

使用此(根据您的具体情况,您可能需要替换“users”表名和“first / last_name”列):

SELECT product_name,product_category,product_image_url,product_proposed_user_id,
users.first_name, users.last_name
FROM product_list
LEFT JOIN users 
ON product_list.product_proposed_user_id = users.user_id

然后在PHP代码中根据需要使用名字和姓氏。