尝试为人员建模的数据库编写查询。这些人在组织中担任职务,因此他们在职位表中有多个条目。我还加入了包含电子邮件,地址和电话信息的表格。
我的原始查询与此类似。
SELECT
P.ID
, N.FIRST
, N.MIDDLE
, N.LAST
, A.AD1
, A.AD2
, A.AD3
, A.CITY
, A.STATE
, A.ZIP
, A.COUNTRY
, PH.NUMBER
, PH.TYPE
, E.TYPE
, E.ADDRESS
FROM
PERSON AS P
JOIN NAME AS N ON P.ID=N.ID,
JOIN ADDRESS AS A ON P.ID=A.ID,
JOIN PHONE AS PH ON P.ID=PH.ID,
JOIN EMAIL AS E ON P.ID=E.ID
我想将POSITION
表加入到这个查询中,但是我希望每个表都能使原始查询为POSITION
表中的每一行都有一个单独的行而不是连接从POSITION
开始追加到查询行的行。
查询位置表只是针对第一个查询返回的每一行select * from Position as Pos where Pos.ID={P.id}
,其中P.ID来自第一个查询。
正常结果应该是这样的:
您可以考虑如何使用订单上的商品加入订单记录。我认为这应该是一个联盟。
但是当我加入位置表时我得到的是这样的:
这可能吗?一直在寻找。
答案 0 :(得分:0)
试试这个,不确定连接条件和列名,假设它如下所示:
个别列的更新 - 假设每个人只有两个职位名称
var sockets = require('../utilities/socket');
var authenticationMiddleware =
require('../middlewares/authentication.js');
var companyModel = require('../models/company.js');
var getCompanyProfile = function(router){
router.post('/api/v1/profile/fetchCompany', authenticationMiddleware.isLoggedIn,
function(req, res) {
companyModel.getCompanyProfile(req['user'].id_user,
function(result){
return res.json(result);
});
}
);
},
var saveCompanyProfile = function(router){
router.post('/api/v1/profile/saveCompany', authenticationMiddleware.isLoggedIn,
function(req, res) {
companyModel.saveCompanyProfile(req,
function(result){
return res.json(result);
});
}
);
}
module.exports = getCompanyProfile;