我的SQL查询有什么问题

时间:2017-10-13 16:03:36

标签: php mysql

我正在尝试从两个单独的表中进行选择,并尝试通过两个不同的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'

2 个答案:

答案 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'