mysql - 在sql中加入四个以上的表

标签 mysql

我有以下包含以下列的表格:更多信息 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 应为 null 否则显示 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 添加

加入条件

试试这个:

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'

关于mysql - 在sql中加入四个以上的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36478442/

相关文章:

MySQL将身份验证类型从标准更改为caching_sha2_password

mysql - Scriptella:在 onerror 标签中获取错误代码和消息

javascript - 在 php 中登录后每小时显示弹出表单

php - 我应该禁用 MySQL 严格模式吗?

php - #1064 - 你的 SQL 语法有错误;创建表时

php - 红 bean PHP : How to use mysql ON UPDATE timestamp

php - 使用 Zend Framework 从 DB 中获取 Integer 将值作为字符串返回

php - 将可变数量的参数传递到 PDO 语句并返回 JSON 对象

mysql - 在 SQL 中使用 split_part

MySQL通过mybatis删除大量数据id