我有数据库结构
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查询如果我想获得所有男人和每个男人的列表以及与那个男人相关的所有工作,将如何查询?
答案 0 :(得分: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表中有记录,那么使用LEFT JOIN而不是INNER JOIN。
答案 1 :(得分: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