3

皆さんは過去に大変お世話になりました。私は何かに苦しんでいるので、質問があります。

「子」、「親」、および「家族」と呼ばれる SQL データベースに 3 つのテーブルがあります。テーブルの構造を以下に示します。

ここに画像の説明を入力

親、子、および家族の各テーブルのデータの例を次に示します。 親テーブル 子テーブル ファミリーテーブル

Family.ChildID は Child テーブルの ID に対応しているため、Child.ID が主キーで、Family.ChildID が外部キーです。同じことがFamily.ParentIDとparents.IDにも当てはまります

私がやりたいことは、子テーブルと親テーブルのすべてのフィールドを選択し、ファミリー テーブルの「リレーション」フィールドを選択することです。ただし、条件は、ChildID を提供し、ファミリー テーブルの子 ID と親 ID を照合して、対応する親を選択することです。

例:

SELECT * 
FROM Parents, Child, Family 
WHERE (Child.ID = 1 AND (Family.ChildID = 1 AND Parents.ID = Family.ParentID)

ご不明な点がございましたら、お気軽にお問い合わせください。

ありがとう

4

2 に答える 2

2

JOINを使用してテーブルをリンクします。子テーブルをファミリーテーブルに結合し、ファミリーテーブルを親テーブルに結合する必要があります。何かのようなもの:

Select c.*, p.*, f.relation from child c
    Left Join family f on f.child_id = c.id
    Left Join parent p on f.parent_id = p.id
    Where c.id = 1
于 2013-01-13T22:22:13.680 に答える
1

これを試して:

SELECT Parents.*, Child.*, Relation
FROM FAMILY
INNER JOIN Parents ON Family.ParentID = Parents.ID
INNER JOIN Child ON Family.ChildID = Child.ID

LEFT OUTER JOINの代わりに使用する必要がある場合がありますINNER

于 2013-01-13T22:30:02.353 に答える