我正在尝试从两个单独的表中进行选择,并尝试通过两个不同的ID连接另一个表。
我一直收到这个错误:
#1066 - 不唯一的表/别名:'wp_term_taxonomy'
SELECT wp_terms.name,
wp_terms.slug,
wp_ads_categories.seo_description
FROM wp_terms, wp_ads_categories
LEFT JOIN wp_term_taxonomy ON wp_terms.term_id = wp_term_taxonomy.term_id
LEFT JOIN wp_term_taxonomy ON wp_ads_categories.term_id = wp_term_taxonomy.term_id
WHERE wp_term_taxonomy.taxonomy = 'product_cat'
答案 0 :(得分:1)
以下是有效查询的示例。它不能是您想要的查询,因为,就像您自己的查询一样,它基本上是荒谬的。但是我们无法知道你现在想要的查询是什么......
SELECT t.name
, t.slug
, c.seo_description
FROM wp_terms t
CROSS
JOIN wp_ads_categories c
LEFT
JOIN wp_term_taxonomy x
ON x.term_id = t.term_id
LEFT
JOIN wp_term_taxonomy y
ON y.term_id = c.term_id
AND y.taxonomy = 'product_cat';
查询是没有意义的,因为通常没有点OUTER JOINing表,您不从中选择任何列。
答案 1 :(得分:0)
如果要在同一查询中多次使用同一个表,则需要创建别名。您的查询应该是。
SELECT wp_terms.name,
wp_terms.slug,
wp_ads_categories.seo_description
FROM wp_terms, wp_ads_categories
LEFT JOIN wp_term_taxonomy tax1 ON wp_terms.term_id = tax1.term_id
LEFT JOIN wp_term_taxonomy tax2 ON wp_ads_categories.term_id = tax2.term_id
WHERE tax1.taxonomy = 'product_cat'
where子句也可能是这样的。这取决于您希望结果集的方式。
WHERE tax2.taxonomy = 'product_cat'