Mysql 使用多个联接的未知列
我想把两张桌子连在一起两次。一个有不同的行,另一个有不同的行,但我得到下面的错误Mysql 使用多个联接的未知列,mysql,sql,wordpress,Mysql,Sql,Wordpress,我想把两张桌子连在一起两次。一个有不同的行,另一个有不同的行,但我得到下面的错误 #1054 - Unknown column 'p1.ID' in 'on clause' MySQL: SELECT p1.ID, p1.post_title, p1.post_excerpt, p2.meta_value, p1.guid, p4.guid FROM wp_posts AS p1, wp_postmeta AS p3 INNER JOIN wp_postmeta p2
#1054 - Unknown column 'p1.ID' in 'on clause'
MySQL:
SELECT p1.ID, p1.post_title, p1.post_excerpt, p2.meta_value, p1.guid, p4.guid
FROM wp_posts AS p1, wp_postmeta AS p3
INNER JOIN wp_postmeta p2
ON p1.ID = p2.post_id
AND p2.meta_key = '_price'
AND p1.post_type = 'product'
AND p1.post_status = 'publish'
INNER JOIN wp_posts p4
ON p4.ID = p3.post_id
AND p3.meta_key = '_thumbnail_id'
AND p4.post_type = 'attachment'
编辑:下面是我在回答后的查询,但它给了我一个空表
SELECT p1.ID, p1.post_title, p1.post_excerpt, p2.meta_value, p1.guid, p3.guid
FROM wp_posts p1
JOIN wp_postmeta p2
ON p1.ID = p2.post_id AND
p2.meta_key = '_price' AND
p1.post_type = 'product' AND
p1.post_status = 'publish'
JOIN wp_posts p3
ON p3.ID = p2.post_id AND
p2.meta_key = '_thumbnail_id'
JOIN wp_postmeta p4
ON p4.post_id = p3.ID AND
p3.post_type = 'attachment';
切勿在FROM
子句中使用逗号。始终使用显式JOIN
语法。您的问题是一个范围问题,很容易解决
这样做时,您会注意到p3
似乎缺少id
或post\u id
上的连接条件。这是您想要的查询结构:
SELECT p1.ID, p1.post_title, p1.post_excerpt, p2.meta_value, p1.guid, p4.guid
FROM wp_posts p1 JOIN
wp_postmeta p2
ON p1.ID = p2.post_id AND
p2.meta_key = '_price' AND
p1.post_type = 'product' AND
p1.post_status = 'publish' JOIN
wp_posts p3
ON p3.? = p2.? AND -- What join condition do you intend here?
p3.meta_key = '_thumbnail_id' JOIN
wp_postmeta p4
ON p4.ID = p2.post_id AND
p4.post_type = 'attachment';
切勿在FROM
子句中使用逗号。始终使用显式JOIN
语法。您的问题是一个范围问题,很容易解决
这样做时,您会注意到p3
似乎缺少id
或post\u id
上的连接条件。这是您想要的查询结构:
SELECT p1.ID, p1.post_title, p1.post_excerpt, p2.meta_value, p1.guid, p4.guid
FROM wp_posts p1 JOIN
wp_postmeta p2
ON p1.ID = p2.post_id AND
p2.meta_key = '_price' AND
p1.post_type = 'product' AND
p1.post_status = 'publish' JOIN
wp_posts p3
ON p3.? = p2.? AND -- What join condition do you intend here?
p3.meta_key = '_thumbnail_id' JOIN
wp_postmeta p4
ON p4.ID = p2.post_id AND
p4.post_type = 'attachment';
#1054-on子句中的未知列“p1.ID”
根据上的文档:
SELECT * FROM t1, t2 JOIN t3 ON (t1.i1 = t3.i3);
联接的优先级高于逗号运算符(,),因此联接
表达式t1,t2连接t3被解释为(t1,(t2连接t3)),而不是
((t1,t2)连接t3)。这会影响使用ON子句的语句
因为该子句只能引用
连接,则优先级会影响对这些操作数的解释
是的
示例:
SELECT * FROM t1, t2 JOIN t3 ON (t1.i1 = t3.i3);
联接优先于逗号运算符,因此
ON条款为t2和t3。因为t1.i1不是其中的一列
在操作数中,结果是“on”中的未知列“t1.i1”
子句的错误
因此,相应地更改join子句并构建sql语句
#1054-on子句中的未知列“p1.ID”
根据上的文档:
SELECT * FROM t1, t2 JOIN t3 ON (t1.i1 = t3.i3);
联接的优先级高于逗号运算符(,),因此联接
表达式t1,t2连接t3被解释为(t1,(t2连接t3)),而不是
((t1,t2)连接t3)。这会影响使用ON子句的语句
因为该子句只能引用
连接,则优先级会影响对这些操作数的解释
是的
示例:
SELECT * FROM t1, t2 JOIN t3 ON (t1.i1 = t3.i3);
联接优先于逗号运算符,因此
ON条款为t2和t3。因为t1.i1不是其中的一列
在操作数中,结果是“on”中的未知列“t1.i1”
子句的错误
因此,相应地更改join子句并构建sql语句。我添加了查询(还添加了缺少的条件)。“字段列表”中的未知列“p4.guid”@fahauddin…我仍然收到错误信息。这表明
wp\u postemta
没有名为guid
的列。也许您打算p3
。我添加了您的查询(还添加了缺少的条件)。“字段列表”中的未知列“p4.guid”@fahauddin…我仍然收到错误信息。这表明wp\u postemta
没有名为guid
的列。也许您想要p3
。显式JOIN
链在逗号分隔的联接之前进行计算。在显式JOIN
链中,只能引用已指定的表的列。显式JOIN
链在逗号分隔的联接之前求值。在显式的JOIN
链中,只能引用已经指定的表的列。