首页 > 解决方案 > 如何将这两个 SELECT 语句合二为一

问题描述

我有两个 SELECT 查询,它们写在MySQL

$sql = 'SELECT Name FROM category WHERE CategoryID = '.$id;

$sql = "SELECT * FROM sub_category WHERE ParentID = $id ORDER BY OrderIndex";

到目前为止,我必须将这两个查询翻译成Oracle PL/SQL,我想到将这两个语句合并为一个,到目前为止我写了查询,但我有点困惑,因为我是初学者PL/SQL

SELECT 
  c.Name,
  sc.Name as SubCategoryName,
  sc.ID as SubCategoryID,
  sc.Picture as Picture,
  sc.OrderIndex
FROM Category c
INNER JOIN sub_category sc ON ParentID =
WHERE CategoryID = 23;

这是表格的图形表示

类别表

在此处输入图像描述

子类别表

在此处输入图像描述

标签: sqloracle

解决方案


您的想法是正确的,连接表是“将两个 select 语句组合在一起”的标准方法之一。根据您使用的类型,您将获得不同的结果join。例如,请参阅此问题以了解不同类型的连接的解释。

您的查询几乎是正确的(假设您想要一个inner join),您缺少条件的右侧join

SELECT 
  c.Name,
  sc.Name as SubCategoryName,
  sc.ID as SubCategoryID,
  sc.Picture as Picture,
  sc.OrderIndex
FROM Category c
INNER JOIN sub_category sc ON sc.ParentID = c.CategoryID
WHERE CategoryID = 23;

推荐阅读