【发布时间】:2017-08-13 00:14:49
【问题描述】:
我有以下 SQL 语句
SELECT invoices.id, invoices.companyid IF( comp_companies.id = invoices.companyid, comp_companies.name, 'Deleted company' ) AS companyname
FROM invoices, comp_companies
WHERE invoice_name IS NULL
LIMIT 0 , 30
我的 invoices 表中有 17 个元素,其中 invoice_name 为空的 16 个。
我想要实现的是从 invoice_name 为 NULL 的发票中选择所有内容,并直接从查询中获取由公司 ID 附加的公司名称,或者如果 comp_companies 表中没有这样的公司 ID ,在公司名称处获取文本“Deleted Company”。
此查询返回 32 个结果,是 invoices 表中金额的两倍,每个不同的发票 id 两个,一个以 companyname 作为已删除公司,一个以 companyname 作为实际公司名称。
我已经尝试按 invoices.id 分组,或者只选择不同的 invoices.id,但没有任何效果。
谁能告诉我我的查询有什么“问题”,我怎样才能达到预期的结果?
【问题讨论】:
标签: mysql sql if-statement