gpt4 book ai didi

mysql where子句子查询不识别外部查询中的表别名

转载 作者:行者123 更新时间:2023-11-30 22:39:41 27 4
gpt4 key购买 nike

以下查询:

SELECT wp_users.* 
FROM wp_users
INNER JOIN wp_usermeta AS mtct ON ( wp_users.ID = mtct.user_id )
WHERE not exists (select * from mtct where mtct.meta_key='City')

给我

Error Code 1146: Table '.mtct' doesn't exist.

我已经搜索过类似的问题,但我仍然看不出我做错了什么。我在 centos 6.4 上使用 mysql 5.6.21。

最佳答案

你不能在 FROM 子句中使用表别名,你必须在那里使用真实的表名。

SELECT wp_users.* 
FROM wp_users
INNER JOIN wp_usermeta AS mtct ON ( wp_users.ID = mtct.user_id )
WHERE not exists (select *
from wp_usermeta AS mtct1
where mtct1.meta_key='City')

这将修复错误,但我不确定它是否会给您想要的结果。子查询可能需要与主查询中的一个表相关联。也许是这样的:

SELECT wp_users.* 
FROM wp_users
INNER JOIN wp_usermeta AS mtct ON ( wp_users.ID = mtct.user_id )
WHERE not exists (select *
from wp_usermeta AS mtct1
where mtct1.meta_key='City'
and mtct1.user_id = wp_users.ID)

但是,似乎没有任何理由要加入 wp_usermeta,因为您没有从该表中选择任何内容。这可能只是:

SELECT * 
FROM wp_users
WHERE not exists (select *
from wp_usermeta AS mtct1
where mtct1.meta_key='City'
and mtct1.user_id = wp_users.ID)

这将返回所有在 wp_usermeta 中没有 City 的用户。

关于mysql where子句子查询不识别外部查询中的表别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31445068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com