[英]How to create big query in SQL
I have 4 tables: 我有4张桌子:
CREATE TABLE workers (
ID_worker INTEGER PRIMARY KEY AUTOINCREMENT,
name_worker INTEGER UNIQUE);
CREATE TABLE equip (
ID_equip INTEGER PRIMARY KEY AUTOINCREMENT,
name_equip TEXT);
CREATE TABLE models (
ID_model INTEGER PRIMARY KEY AUTOINCREMENT,
ID_equip1 INTEGER REFERENCES equip (ID_equip),
name_model TEXT);
CREATE TABLE work(
ID_worker1 INTEGER REFERENCES workers (ID_worker),
ID_model1 INTEGER REFERENCES models (ID_model) );
And I want to create query, for example: ID_worker / name_worker / ID_model / ID_model where in first "ID_model" appear models where ID_equip1=1 and in second "ID_model" - ID_equip1=2 我想创建查询,例如:ID_worker / name_worker / ID_model / ID_model其中第一个“ ID_model”出现模型,其中ID_equip1 = 1,第二个“ ID_model”-ID_equip1 = 2
Sample Data 样本数据
Table workers
/ID_worker/name_worker/
/1 /Andrew /
/2 /Max /
Table equip
/ID_equip/name_equip/
/1 /equip1 /
/2 /equip2 /
Table models
/ID_model/ID_equip1/name_model/
/1 /1 /BH-1 /
/2 /1 /BH-2 /
/3 /2 /CH-1 /
/4 /2 /CH-2 /
Table work
/ID_worker1/ID_model1/
/1 /1 /
/1 /4 /
/2 /2 /
/2 /3 /
I want that result 我想要那个结果
/ID_worker/name_worker/ID_model/ID_model/
/1 /Andrew /1 /4 /
/2 /Max /2 /3 /
Try this - 尝试这个 -
SELECT WS.ID_worker, WS.name_worker, MIN(W.ID_model1), MAX(W.ID_model1)
FROM workers WS
INNER JOIN work W ON WS.ID_worker = W.ID_worker1
GROUP BY WS.ID_worker, WS.name_worker
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.