从相同的 table 获取父名称

Getting Parent name from same table

我有一个 table 如下:

quotes_glass_types

 id | name                    | parent_id
 1  | Annealed glass           |  Null
 2  |  Clear Float Glasss     |   1
 3  |  Tinted glass           |   1
 4  |  Toughened glass        |   Null
 5  |  Clear toughened Glass  |   4

在这里,具有 Null parent_id 的名称是父级。 我如何在 laravel 中显示玻璃杯名称及其父级?例如;

{
  id:2,
  name:Clear Float glass,
  category:Annealed glass
 }

之后我要做什么?:

$glass=\DB::table('quotes_glass_types')->select('id','name','parent_id as category')->get();

如果你想获得 Name with Parent Name 而不是你可以使用下面的查询:

SELECT qgt.name,pqgt.name FROM quotes_glass_types as qgt LEFT JOIN quotes_glass_types as pqgt ON qgt.id = pqgt.parent_id

您必须在同一个 table 上使用 LEFT JOIN。我不知道如何在 Laravel 中编写此查询,但此查询在 phpmyadmin 中有效。

请查收。

你可以这样做-

DB::table('quotes_glass_types')

->select('quotes_glass_types.*', 'qgt.name as parent_name')

->leftjoin('quotes_glass_types as qgt', 'qgt.id', '=', 'quotes_glass_types.parent_id')

->get();