MySQL中的多层查询

时间:2015-02-25 03:06:56

标签: php mysql sqlite

初学者*。我有一个表允许用户运行查询。但是在我的系统中,我允许用户在表上运行查询,然后使用相同的先前查询结果运行另一个查询。

SELECT * FROM employees WHERE jobTitle = 'Sales Rep'
SELECT * FROM employees WHERE officeCode = '1'

以前使用SQLite语法我可以通过将两个查询操作到

来实现这一点
SELECT * FROM (SELECT * FROM employees WHERE jobTitle = 'Sales Rep') WHERE officeCode = '1' 

但是,我在MySQL中尝试了同样的方法,我收到了错误:

#1248 - Every derived table must have its own alias 

是否有不同的语法或在MySQL中根本不可能?

1 个答案:

答案 0 :(得分:1)

您只需要子查询中的别名:

SELECT t.*
FROM (SELECT *
      FROM employees
      WHERE jobTitle = 'Sales Rep'
     ) t
WHERE officeCode = '1' ;

t是别名。

此查询通常只使用AND编写:

      SELECT *
      FROM employees
      WHERE jobTitle = 'Sales Rep' AND
            officeCode = '1' ;