1

カテゴリ情報を持つテーブルがあります。

テーブルには、親カテゴリと子カテゴリをマークするフィールドがあります。

クエリを使用して、親カテゴリをリストし、次にその子カテゴリをリストしようとしました。

私は次のようなものを試しました

SELECT 
  CategoryID.categories as ParentID,
  CategoryName.categories AS ParentName, 
  parents.* 
FROM 
  categories AS parents LEFT JOIN categories AS child 
    ON child.Parent = parents.ParentID

残念ながら、私にはうまくいきませんでした。それは私に奇妙なエラーを与えます。

[SQL] SELECT CategoryID.categories as ParentID, CategoryName.categories 
AS ParentName, parents.* FROM categories as parents LEFT JOIN categories as child on child.Parent = parents.ParentID

[Err] 1054 - Unknown column 'CategoryID.categories' in 'field list'

すべてのフィールド名が正しいと確信しています。

4

3 に答える 3

1

まず、db エンジンは列 [table].[column] を読み取りますが、その逆ではありません。そのため、CategoryID.categories が何であるかを理解できません。CategoryID というテーブルはありません。

テーブルをそのように定義しました

     FROM categories AS parents 
LEFT JOIN categories AS child 

そのため、指定した名前を使用してそれらを参照する必要があります。すなわち

SELECT
      parents.CategoryId as ParentId,
      child.CategoryId as ChildId,
      ...
于 2012-09-29T23:25:11.750 に答える
0

Under SELECTyou are writing CategoryID.categoriesand CategoryName.categories... のように書くのがルールですalias name.field name

したがって、エラーが発生しますUnknown column 'CategoryID.categories' in 'field list'

このように試してみることをお勧めします-

SELECT parent.CategoryID as ParentCategory, parent.CategoryName as ParentCatName,
     child.CategoryID as ChdCategory, child.CategoryName as ChdCatName
FROM categories AS parents LEFT JOIN categories AS child 
     ON child.Parent = parents.ParentID

ここで検索することもできます: mysql joins with alias

于 2012-09-29T23:36:33.053 に答える
0

試す

SELECT
  parents.CategoryId AS ParentId,
  parents.CategoryName AS ParentName,
  parents.* -- < this is probably child.*
FROM
   categories AS child LEFT JOIN categories AS parents
     ON child.parent = parents.CategoryId

SQL の命名規則は [テーブル].[列] です。最初に列名を使用していました。

于 2012-09-29T23:06:32.717 に答える