将访问查询转换为MYSQL

时间:2015-12-09 18:19:26

标签: mysql subquery

在潜伏着stackoverflow之后,总是找到我的答案),我终于需要发表自己的问题了。

我是MySQL新手并且一直使用访问查询设计器来帮助我学习/将我的查询转换为SQL。

在我尝试转换使用其他查询(子查询)的访问查询之前,此工作正常。

以下是完成的Access查询:

SELECT all_assm_start_stop.*, employee.first_name
FROM all_assm_start_stop LEFT JOIN employee ON all_assm_start_stop.employee_id = employee.employee_id

all_assm_start_stop 基于此访问查询:

(SELECT assemblies.assemblies_id, assemblies.assembly_name, labor.start_time, labor.stop_time, labor.number_completed, labor.employee_id, assemblies.product_id
FROM labor RIGHT JOIN assemblies ON labor.assemblies_id = assemblies.assemblies_id
WHERE (((assemblies.product_id)=2)))

我一直在研究MySQL子查询,但无法弄清楚如何转换它。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

作为一个不得不这么做的人,这是我发现的最直接/直接的转换方法:

SELECT all_assm_start_stop.*, employee.first_name
FROM ([original query]) AS all_assm_start_stop 
LEFT JOIN employee ON all_assm_start_stop.employee_id = employee.employee_id
;

(注意[original_query]是你提供第二个的地方,为了简洁和清晰/普遍,我以这种方式发布了答案。)

编辑:如果该查询在很多其他查询中使用过,您可能需要考虑将其设为VIEW

答案 1 :(得分:0)

SELECT a.assemblies_id
     , a.assembly_name
     , l.start_time
     , l.stop_time
     , l.number_completed
     , l.employee_id
     , a.product_id
     , e.first_name
  FROM assemblies a
  LEFT
  JOIN labor l
    ON l.assemblies_id = a.assemblies_id
  LEFT 
  JOIN employee e 
    ON e.employee_id = a.employee_id
 WHERE a.product_id = 2