3

私はこのDB構造を持っています

CREATE TABLE man (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT
);


CREATE TABLE work (
    work_id INTEGER PRIMARY KEY,
);

CREATE TABLE manWork {
    man_id INTEGER,
    work_id INTEGER,
    FOREIGN KEY(man_id) REFERENCES man(id),
    FOREIGN KEY(work_id) REFERENCES work(work_id)
};

すべての男性のリストを取得し、すべての男性について、その男性に関連付けられているすべての仕事も取得したい場合、SELECT クエリはどのようになりますか?

4

2 に答える 2

2
SELECT
    m.name
    , w.*
FROM
    man m
         INNER JOIN manWork mw ON m.id = mw.man_id
         INNER JOIN work w ON mw.work_id = w.work_id

あなたの質問からはわかりませんでしたが、manWorkテーブルにレコードがあるかどうかに関係なく、すべての男性が必要な場合は、INNERJOINの代わりにLEFTJOINを使用してください。

于 2012-12-19T11:19:39.017 に答える
1

JOINテーブル:

SELECT
  m.name,
  w.*
FROM manwork mw
INNER JOIN work w ON mw.work_id = w.work_id
INNER JOIN man  m ON mw.man_id  = m.id
于 2012-12-19T11:18:26.860 に答える