我试图让一个查询工作而不是两个,第一个创建一个数组,然后循环通过另一个。
第一个查询返回一组用户,然后我想根据这些用户查询另一个表,经过一些研究我最终得到了这个但是它没有用...
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的订单
答案 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';