SQL Joining query using Selection Statement

2020-04-18 08:26发布

问题:

I have one table of oc_category_description where columns are :

  • category_id
  • name

and other table oc_category where columns are :

  • category_id
  • image
  • parent_id

Here the sample pic of oc_category_description table

oc_category table

Here i am want to show name, category_id, image, parent_id where oc_category parent_id is 0;

Here is sql :

php

function getMainCategory()
{
    $stmt = $this->con->prepare("SELECT category_id, image, parent_id, (SELECT oc_category_description.name FROM oc_category_description WHERE oc_category.category_id = oc_category_description.category_id) FROM oc_category WHERE parent_id = 0 ORDER BY category_id ASC");

    $stmt->execute();
    $stmt->bind_result($category_id, $image, $parent_id, $name);

    $users = array();

    while ($stmt->fetch()) {
        $temp = array();
        $temp['category_id'] = $category_id;
        $temp['image'] = $image;
        $temp['parent_id'] = $parent_id;
        $temp['name'] = $name;

        array_push($users, $temp);
    }
    return $users;
}

but it returns nothing :(

回答1:

Try this below script-

SELECT oc_category.category_id, 
oc_category.image, 
oc_category.parent_id, 
oc_category_description.name
FROM oc_category 
INNER JOIN oc_category_description 
    ON oc_category.category_id = oc_category_description.category_id
WHERE oc_category.parent_id = 0 
ORDER BY oc_category.category_id ASC


回答2:

Try this

select t1.category_id,t1.image, t1.parent_id, t2.name from oc_category as t1 left join oc_category_discription as t2 on t1.category_id = t2.category_id where t1. parent_id = 0 order by id t1.category_id asc;


标签: php sql mysqli