1
我已经编写了一个基于关键字/选择菜单搜索系统构建查询的php脚本。该脚本的伟大工程的权利,直到我尝试在列别名搜索:列别名在WHERE子句中不可用
SELECT
contacts.*,
orders.order_id AS is_customer,
purchases.purchase_id AS is_supplier
FROM contacts
LEFT JOIN orders ON orders.customer_id=contacts.contact_id
LEFT JOIN purchases ON purchases.supplier_id=contacts.contact_id
WHERE is_customer IS NOT NULL
AND contacts.account_id=1
GROUP BY contact_id
ORDER BY contact_company_name
这是这就是问题所在行WHERE is_customer IS NOT NULL
- MySQL的告诉我,它不存在。我明白为什么这样,但这对我没有帮助。
我试图根据提示,我在这里读Unknown Column In Where Clause,从而将其更改为HAVING is_customer IS NOT NULL
:
SELECT
contacts.*,
orders.order_id AS is_customer,
purchases.purchase_id AS is_supplier
FROM contacts
LEFT JOIN orders ON orders.customer_id=contacts.contact_id
LEFT JOIN purchases ON purchases.supplier_id=contacts.contact_id
HAVING is_customer IS NOT NULL
AND contacts.account_id=1
ORDER BY contact_company_name
...这查询工作就好提供我删除GROUP BY
条款。显然这会打破我的结果。
任何人都可以帮助我擦亮这个查询吗?
我看不出有任何的聚合,从而将WHERE orders.order_id不为空会工作 – FirebladeDan