mysql where子句基于另一个查询

时间:2017-07-06 09:11:53

标签: php mysql sql

我试图让一个查询工作而不是两个,第一个创建一个数组,然后循环通过另一个。

第一个查询返回一组用户,然后我想根据这些用户查询另一个表,经过一些研究我最终得到了这个但是它没有用...

SELECT FreeText, (
    SELECT EmailAddress FROM customers WHERE AccessLevel = 'callcentre'
) AS User FROM orders WHERE FreeText = User

我更愿意做一个查询,但如果那不可能,那么我将使用第一个创建和数组然后循环遍历第二个

来解决它

任何帮助表示赞赏

示例结果,用户将包含名称,例如lsmith,nrowe,pmerle

然后第二个查询将重新调整它们被设置为FreeTxt的订单行

示例表结构

customers table
Id, Email,  Add1,        Add2    ect...
23, lsmith, someaddress, road...

Orders
Id, customerId, FreeTxt, Product
54, 23,         lsmith,  mob

这个输出是lsmith + Id来自我在测试时只询问FreeTxt的订单

1 个答案:

答案 0 :(得分:6)

子查询不是必需的,你可以用内连接做同样的事 但请确保orders.FreeText = customers.EmailAddress真正匹配

  SELECT orders.FreeText, customers.EmailAddress
  FROM orders
  INNER JOIN customer on orders.FreeText  = customers.EmailAddress 
        and customers.AccessLevel = 'callcentre';