Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有内部联接的MySQL错误1142_Mysql_Sql - Fatal编程技术网

带有内部联接的MySQL错误1142

带有内部联接的MySQL错误1142,mysql,sql,Mysql,Sql,当街道地址和邮政编码在两个表之间匹配时,我试图从CM_主表返回PP表中所有列以及匹配的LOCATIONGUID记录。上述代码返回错误: SELECT * FROM `PP` INNER JOIN `CM_MASTER`.`LOCATIONGUID` ON `PP`.`ADDR` = `CM_MASTER`.`ADDRESS1` AND `PP`.`ZIP` = LEFT(`CM_MASTER`.`POSTALCODE`,5); 我正在phpMyAdmin中运行此查询。 有人能给我指出一个可

当街道地址和邮政编码在两个表之间匹配时,我试图从CM_主表返回PP表中所有列以及匹配的LOCATIONGUID记录。上述代码返回错误:

SELECT * FROM `PP`
INNER JOIN `CM_MASTER`.`LOCATIONGUID` 
ON `PP`.`ADDR` = `CM_MASTER`.`ADDRESS1` 
AND `PP`.`ZIP` = LEFT(`CM_MASTER`.`POSTALCODE`,5);
我正在phpMyAdmin中运行此查询。 有人能给我指出一个可行的方向吗

编辑: cm_主表有address1、zip和LOCATIONGUID列。 pp表有addr和zip列。 如果pp.addr=cm_master.address1和pp.zp=cm_master.zip,则 返回查询中已加入cm_master.LOCATIONGUID的记录。
这可能吗?

您的语法错误。您需要在表\名称.列\名称周围放置左侧,而不是拆分表\名称和列\名称

所以改变

 #1142 - SELECT command denied to user 'ameridw5'@'localhost' for table 'LOCATIONGUID' 
对此

CM_MASTER.LEFT(POSTALCODE,5) 
完整查询将是:

LEFT(CM_MASTER.POSTALCODE,5) 
编辑时,不清楚您的表结构是什么,但您需要LocationGUID,然后可能还需要添加该列:

SELECT * 
FROM `PP`
INNER JOIN `CM_MASTER`
  ON `PP`.`ADDR` = `CM_MASTER`.`ADDRESS1` 
  AND `PP`.`ZIP` = LEFT(`CM_MASTER`.`POSTALCODE`,5) ;
此用户ameridw5似乎没有表LOCATIONGUID的权限

只需设置此用户的所有权限

SELECT * 
FROM `PP`
INNER JOIN `CM_MASTER`
  ON `PP`.`LOCATIONGUID` = `CM_MASTER`.`LOCATIONGUID` 
  AND `PP`.`ADDR` = `CM_MASTER`.`ADDRESS1` 
  AND `PP`.`ZIP` = LEFT(`CM_MASTER`.`POSTALCODE`,5) ;

文档:

请将CM_MASTER.LEFTPOSTALCODE,5更改为此LEFTCM_MASTER.POSTALCODE,5,这样我们可以向上投票给您。您正在查询的用户是否有权从LOCATIONGUID表中进行选择?请尝试直接从中选择。谢谢,我刚刚这样做了,但它仍然会抛出相同的错误。@user2344300查看我的编辑,cm_master是表名吗?如果是这样,那么您不需要在它的末尾有LOCATIONGUID。或者表名为LOCATIONGUID?是的,cm_master是表名,去掉其末尾的LOCATIONGUID确实可以使其工作,但它最终将两个表连接起来,而不仅仅是cm_master表的LOCATIONGUID列连接到整个PP表。@user2344300 PP表是否有LOCATIONGUID?您可能需要用表结构编辑OP,然后再编辑您要做的。@Adrian问题是他们正试图在表\u name.column\u name上进行连接。这不是权限问题。CM_MASTER.LOCATIONGUID是包含列的表,没有名为LOCATIONGUID的表。如果联接内部联接CM_MASTER.LOCATIONGUID,则假定为db.table,但此查询并非如此。如果你阅读了整个问题和评论,你会发现,因此我认为这不值得投反对票。
    GRANT ALL PRIVILEGES on mydb.* to 'ameridw5'@'localhost' identified by 'you';