繁体   English   中英

在sql中加入四个以上的表

[英]Join more than four tables in sql

我有以下包含以下列的表格: http ://sqlfiddle.com/#!2/ 8776a0 /2 中的更多信息

request : {id,request_id, client_id, product_name, designation_date_1, can }
assigned_samples:{id,labref, user_id, stat}
users{id, fname, lname}
clients:{id, name}
tracking_table{labref, activity, added_date}

我想要做的是加入所有这些表,并在加入跟踪表时提出一个包含所有数据的大表,条件是检查活动列是否给出了像“a”这样的值,如果没有匹配的行找到了,date_ added 应该是空的,否则显示 date_ added

result table {labref, prod, desc_date, can, CONCAT(fname,' ',lname), date_added}

SELECT r.request_id, r.product_name, r.can, r.designation_date_1, CONCAT(u.fname,' ', u.lname) as analyst, a_s.stat
FROM request r, assigned_samples a_s, user u, clients c
WHERE r.client_id=c.id
AND a_s.analyst_id = u.id
AND r.request_id = a_s.labref
AND r.client_id='2'
GROUP BY r.request_id

如果我向查询添加条件,它会返回数据,但 date_ added 是完全相同的,这是错误的

SELECT r.request_id, r.product_name, r.can, r.designation_date_1, CONCAT(u.fname,' ', u.lname) as analyst, a_s.stat
FROM request r, assigned_samples a_s, user u, clients c, tracking_table t
WHERE r.client_id=c.id
AND a_s.analyst_id = u.id
AND r.request_id = a_s.labref
AND t.activity ='Authorizing COA Release'
AND r.client_id='2'
GROUP BY r.request_id

应为tracking_table添加join condition

尝试这个:

SQLFiddle: http ://sqlfiddle.com/#!2/3a116f/1

(我稍微改变了演示的输入数据)

SELECT r.request_id, r.product_name, r.can, r.designation_date_1, CONCAT(u.fname,' ', u.lname) as analyst, a_s.stat,
  date_added
FROM request r, assigned_samples a_s, user u, clients c, tracking_table t
WHERE r.client_id=c.id
AND a_s.analyst_id = u.id
AND r.request_id = a_s.labref
AND r.client_id='2'
AND r.request_id = t.labref
AND t.activity ='Authorizing COA Release'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM