查询媒体库关联Envira标签及文章ID时遇MySQL 1066错误求助
解决MySQL 1066错误:表别名重复问题
嘿,这个错误的根源特别明确——你给两个不同的表用了同一个别名tt,MySQL没办法区分它们,所以直接抛出了1066 - Not unique table/alias: 'tt'的报错。
看你原来的语句:
SELECT t.term_id, t. NAME, t.slug, pm.meta_value, tt.taxonomy, tr.object_id, tr.term_order FROM wp_terms AS tt INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id ...
这里wp_terms和wp_term_taxonomy都被命名为tt,数据库完全搞不清你在JOIN和字段引用时指的是哪个表,自然会报错。
修正后的查询语句
我帮你调整了别名,确保每个表的别名唯一,同时修正了字段引用的一致性:
SELECT t.term_id, t.name, t.slug, pm.meta_value, tt.taxonomy, tr.object_id, tr.term_order FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id INNER JOIN wp_postmeta AS pm ON pm.post_id = tr.object_id WHERE tt.taxonomy = "envira-tag" AND pm.meta_key = "_wp_attached_file"
关键修改点
- 将
wp_terms的别名从tt改为t,和你SELECT子句里的t.term_id等引用保持一致 - 保留
wp_term_taxonomy的别名tt,这样WHERE子句里的tt.taxonomy也能正确指向分类表
这样调整后,各个表的关联关系清晰,MySQL就能正常执行查询,返回你需要的Envira Gallery标签和对应文章ID的数据了。
内容的提问来源于stack exchange,提问作者Daddy G
相关产品推荐
相关产品推荐

