我想从 2 个不同的表中进行连接查询,我想从两个表中输出
Posted
技术标签:
【中文标题】我想从 2 个不同的表中进行连接查询,我想从两个表中输出【英文标题】:I want to do join query from 2 different table and i want output from both table 【发布时间】:2018-08-25 09:51:36 【问题描述】:我应用 LEFT JOIN 和 RIGHT JOIN 查询从两个表中获取输出。
有两个表:
Product_list 的第一个表.. 此表包含 category_id,它是外键和所有其他产品详细信息..
product_images的第二个表..这个表包含product_id,它是外键和产品图像分开..
我想要特定 category_id 的产品详细信息和产品图片..
我使用这个查询但不能正常工作:
SELECT *
FROM product_list
LEFT JOIN product_images ON product_list.pro_id = product_images.pro_id
WHERE product_list.cat_id = '.$id.'
UNION
SELECT *
FROM product_list
RIGHT JOIN product_images ON product_list.pro_id = product_images.pro_id
我得到这个输出:
API 代码
<?php
error_reporting(0);
$response = array();
require_once __DIR__ . '/db_Connect.php';
// check for post data
if (isset($_GET["cat_id"]))
$id = $_GET['cat_id'];
// get a product from products table
//$q="SELECT * FROM product_list WHERE cat_id ='".$id."' ORDER BY pro_id DESC ";
$q="SELECT *
FROM product_list
LEFT JOIN product_images ON product_list.pro_id = product_images.pro_id
WHERE product_list.cat_id = '.$id.'
UNION
SELECT *
FROM product_list
RIGHT JOIN product_images ON product_list.pro_id = product_images.pro_id WHERE product_list.cat_id = '.$id.'";
//print($q);
$res = mysql_query($q);
print($res);
//exit();
if (mysql_num_rows($res) > 0)
$responce["category_sub_list"]=array();
// check for empty result
while($result = mysql_fetch_array($res))
$product=array();
$product['pro_id']=$result['pro_id'];
$product['cat_id']=$result['cat_id'];
$product['product_name']=$result['product_name'];
$product['image']="http://friendzfashionz.com/pandora/admin/Sub_uploads/".$result['image'];
$product['product_desc']=$result['product_desc'];
array_push($responce["category_sub_list"],$product);
$responce["success"]=1;
echo json_encode($responce);
else
// no product found
$response["success"] = 0;
$response["message"] = "No user found";
// echo no users JSON
echo json_encode($response);
else
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
?>
【问题讨论】:
您当前的输出是什么,您的预期输出是什么?可以在这里发帖吗? 最后一张照片是当前输出@SmitRaval 你能试试我在回答中发布的查询吗? 它在 php myadmin 中可以正常工作,但在我的 API 中却没有...@SmitRaval 请用所有代码更新您的问题,以便我为您提供帮助。 【参考方案1】:请试试这个查询。您需要在两个查询中应用 where 条件。
SELECT *
FROM product_list
LEFT JOIN product_images ON product_list.pro_id = product_images.pro_id
WHERE product_list.cat_id = '.$id.'
UNION
SELECT *
FROM product_list
RIGHT JOIN product_images ON product_list.pro_id = product_images.pro_id WHERE product_list.cat_id = '.$id.'
【讨论】:
以上是关于我想从 2 个不同的表中进行连接查询,我想从两个表中输出的主要内容,如果未能解决你的问题,请参考以下文章