Я применяю ЛЕВЫЙ РЕЙТИНГ а также ПРАВИЛЬНОЕ СОЕДИНЕНИЕ запрос, чтобы получить вывод из обеих таблиц ..
Есть две таблицы:
1-я таблица для Product_list. Эта таблица содержит category_id, который является внешним ключом, и все другие подробности о продукте.
2-я таблица для 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);
}
?>
Пожалуйста, попробуйте этот запрос. Вам необходимо применить условие в обоих запросах.
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.'
Других решений пока нет …