我试图创建一个带有concat和内部连接的sql查询。
如果没有内部连接,一切正常,使用内部连接我得到:
错误1054(42S22):“字段列表”中的未知列“kk.kundennummer”
这是我的问题:

select
    kk.kundennummer as customer_id,
    kk.nummer as customer_nr,
    substr(`name`, 1, (length(`name`) - length(
        SUBSTRING_INDEX((`name`), ' ', -1))-1)
        ) as first_name,
    substring_index(`name`,' ',-1) AS last_name,
    k.name1 as company_name,
    kk.Abteilung as department,
    concat(`kk.kundennummer`,`kk.Nummer`) as customer_key,
    kk.Telefon as phone,
    kk.Telefax as fax,
    kk.Handy as mobile,
    kk.E_Mail as email,
    kk.Geburtstag as birthday,
    kk.Autotelefon as mobile2
from kundenkontakt kk
    inner join kunden k on (k.Kundennummer = kk.Kundennummer)
where kk.E_Mail != "";

我做错什么了?
当做

最佳答案

问题是这行代码(以及我可能遗漏的任何类似代码):

concat(`kk.kundennummer`,`kk.Nummer`) as customer_key,

您没有名为“kk.kundennummber”的列(列名称中有“kk.”)。只需移除反勾:
concat(kk.kundennummer, kk.Nummer) as customer_key,

嗯,这是一个很好的理由,在编写代码时不要使用反勾号。我认为它们只是把查询弄得一团糟(除非绝对必要),但它们也可能导致意外的错误。

09-17 03:49