当前位置: 首页 > 面试题库 >

如何在SQL查询中为父母加入分类表?

益明朗
2023-03-14
问题内容

我有一个表作为(id,category_id,…),然后JOIN它的类别表为(category_id,category_name,parent,…)ONcategory_id。父级是另一个类别的category_id。例如:

category_id    category_name      parent
1              Computer Science   NULL
2              Web Technology     1
3              Mathematics        NULL
4              PHP                2

如何JOIN发布帖子和分类表,以阅读帖子的父类别。例如,

id     category_id    post_title
44     4              something

通过简单的JOINcategory_id,我只能得到PHP作为类别。我怎么也能得到父母呢Computer Science > WebTechnology > PHP

注意: 我将mysql与MyISAM引擎一起使用。


问题答案:

只需对额外的元素进行额外的联接,但将IT作为LEFT联接,因为并非所有类别都具有父类别,并且您不希望排除这些类别。

select
      P.ID,
      P.Post_Title,
      P.Category_ID,
      C.Category_Name as FirstCat,
      C.Parent,
      COALESCE( C2.Category_Name, ' ' ) as ParentCategory
   from
      Posts P
         JOIN Categories C
            on P.Category_ID = C.Category_ID
            LEFT JOIN Categories C2
               on C.Parent = C2.Category_ID
   where
      AnyFiltering


 类似资料:
  • 问题内容: 我有一个SQL查询为我提供X个结果,我希望查询输出中有一个叫做count的命令使查询变得像这样: 我怎样才能做到这一点? 问题答案: 好吧,我想这已经足够构成答案了:以下链接指定了两种方法:http : //www.techrepublic.com/blog/microsoft-office/an-access-query-that-returns- every-nth-记录/ 第一种

  • 问题内容: 我在 MySQL中* 有如下的 注释 表: * 用户可以添加 新的 注释,因为它们不是其他注释的子对象,所以将没有parent_id。用户还可以 回复 通过先前方法添加的评论,因此它们是主要评论的子级,例如在第二层级上。该 PARENT_ID 列表示父评论的ID,如果存在的话。如果注释没有父母,则默认 parent_id 为-1。 话虽如此,我想查询表中的所有注释,每个父项后跟其子级,

  • 问题内容: 如何在按部分分组的查询中使用子查询? 我使用SQL Server 2008 R2和Delphi 2010 我收到此错误: 像这个查询: 按t1.sen分组 问题答案: 这是真实的方式

  • 问题内容: 我想编写一个包含NodeJS变量的SQL查询。当我这样做时,它给我一个错误“未定义”。 我希望下面的SQL查询能够识别该变量。如何将NodeJS变量输入到SQL查询中?它周围是否需要特殊字符,例如或。 问题答案: 您将需要将变量的 值 放入SQL语句中。 这不好: 这将起作用,但是从SQL注入攻击中并不安全: 为了防止SQL注入,您可以像这样转义您的价值: 但是最好的方法是使用参数替换

  • 问题内容: 有什么办法(查询)在ElasticSearch中加入以下2个JSON 以上2种JSON在Logstash中以2种不同类型处理(输入),因此它们的索引在Elasticsearch中归档的不同“类型”中可用。 我想要的是在product_id字段上加入2个JSON。 问题答案: 当您说加入时,这取决于您的打算。Elasticsearch与支持表之间的JOIN的常规数据库不同。它是一个文本搜

  • 问题内容: 考虑一下我有这行代码 恕我直言,这很容易受到SQL注入的攻击。 因此,我想通过Get / URL发送一个“ var”参数来证明它是可以尝试的,该参数将注入查询,并带有潜在的恶意代码。 我实际上尝试过: 我尝试在执行之前打印出SQL字符串查询,它实际上是2条SQL有效语句。 第一个问题,但实际上似乎mysqli-> query不会一次执行2条语句。是不是 第二个问题,我看到注入查询的一种