我得到了以下查询,但是当我执行它时出现错误 - #1054 - Unknown column 'adress' in 'where clause'
我想知道为什么?当我删除 where 子句时,它通常显示为一列,不知道为什么会抛出错误。
SELECT zlec_status.nazwa AS Status,
piorytet.nazwa AS Priorytet,
Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`,
Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ',
zlec_adresy.oddzial)
AS `adress`,
zlec_z_dnia,zlec_id,
zlec_nr,
zlec_do,
zlec_ogran,
awizacje,
awizacja_na_dzien,
termin_zamkniecia,
tresc,
uwagi
FROM zlec
INNER JOIN koord
ON zlec.koord = koord.id
INNER JOIN zlec_adresy
ON zlec.zlec_addres = zlec_adresy.id
INNER JOIN piorytet
ON zlec.priorytet = piorytet.id
INNER JOIN zlec_status
ON zlec.status_zlecenia = zlec_status.id
WHERE `adress` LIKE '%Some%'
最佳答案
您不能在 where
子句中为 select
使用 select
中定义的列别名。你有两个选择。 MySQL 扩展了 having
的使用,因此您可以使用它:
HAVING `adress` LIKE '%Some%'
或者,您可以使用完整的表达式:
Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ',
zlec_adresy.oddzial) LIKE '%Some%'
或者,您可以使用子查询,但我不建议这样做。
关于mysql - SQL - 由于 where 子句中的列未知,无法对别名进行条件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31394083/