简体   繁体   English

尝试联接表MySQL时出错

[英]Error when trying to join tables mySQL

I am completely new to mySQL so please bear with me. 我对MySQL完全陌生,因此请耐心等待。 When I try to get distinct columns from the following tables, Redshifts, FOF, FOFMtree I get this error 当我尝试从下表(Redshifts,FOF,FOFMtree)中获得不同的列时,出现此错误

EDIT The website that stores the data uses PaQu to query 编辑存储数据的网站使用PaQu进行查询

Unknown column 'r.r.' in 'field list' 

What I only want rows where entries match and to do this I am using the query below. 我只想要条目匹配的行,为此,我正在使用以下查询。

SELECT DISTINCT r.*, mt.*, f.* FROM MDR1.FOFMtree mt, MDR1.FOF f, MDR1.Redshifts r 
WHERE mt.fofId = f.fofId AND f.mass = mt.mass AND f.snapnum=r.snapnum

The query plan is below 查询计划如下

-- The query plan used to run this query: 
--------------------------------------------------
-- CALL paquExec('SELECT DISTINCT `r`.`snapnum` AS `r__snapnum`,`r`.`aexp` AS `r__aexp`,`r`.`zred` AS `r__zred` FROM MDR1.Redshifts AS `r` ', 'aggregation_tmp_42723925')
-- CALL paquExec('SELECT `f`.`fofId` AS `f__fofId`,`f`.`snapnum` AS `f__snapnum`,`f`.`level` AS `f__level`,`f`.`NInFile` AS `f__NInFile`,`f`.`x` AS `f__x`,`f`.`y` AS `f__y`,`f`.`z` AS `f__z`,`f`.`vx` AS `f__vx`,`f`.`vy` AS `f__vy`,`f`.`vz` AS `f__vz`,`f`.`np` AS `f__np`,`f`.`mass` AS `f__mass`,`f`.`size` AS `f__size`,`f`.`disp` AS `f__disp`,`f`.`disp_v` AS `f__disp_v`,`f`.`delta` AS `f__delta`,`f`.`spin` AS `f__spin`,`f`.`angMom_x` AS `f__angMom_x`,`f`.`angMom_y` AS `f__angMom_y`,`f`.`angMom_z` AS `f__angMom_z`,`f`.`angMom` AS `f__angMom`,`f`.`axis1` AS `f__axis1`,`f`.`axis2` AS `f__axis2`,`f`.`axis3` AS `f__axis3`,`f`.`axis1_x` AS `f__axis1_x`,`f`.`axis1_y` AS `f__axis1_y`,`f`.`axis1_z` AS `f__axis1_z`,`f`.`axis2_x` AS `f__axis2_x`,`f`.`axis2_y` AS `f__axis2_y`,`f`.`axis2_z` AS `f__axis2_z`,`f`.`axis3_x` AS `f__axis3_x`,`f`.`axis3_y` AS `f__axis3_y`,`f`.`axis3_z` AS `f__axis3_z`,`f`.`ix` AS `f__ix`,`f`.`iy` AS `f__iy`,`f`.`iz` AS `f__iz`,`f`.`phkey` AS `f__phkey`,`r`.`r.` AS ``,`r`.`r__snapnum` AS `r__snapnum`,`r`.`r__aexp` AS `r__aexp`,`r`.`r__zred` AS `r__zred` FROM MDR1.FOF AS `f` JOIN ( SELECT DISTINCT `r__snapnum`,`r__aexp`,`r__zred` FROM `aggregation_tmp_42723925` ) AS `r` WHERE ( `f`.`snapnum` = `r`.`r__snapnum` ) ', 'aggregation_tmp_57441076')
-- CALL paquExec('SELECT `mt`.`fofTreeId` AS `mt__fofTreeId`,`mt`.`fofId` AS `mt__fofId`,`mt`.`treeSnapnum` AS `mt__treeSnapnum`,`mt`.`descendantId` AS `mt__descendantId`,`mt`.`lastProgId` AS `mt__lastProgId`,`mt`.`mainLeafId` AS `mt__mainLeafId`,`mt`.`treeRootId` AS `mt__treeRootId`,`mt`.`x` AS `mt__x`,`mt`.`y` AS `mt__y`,`mt`.`z` AS `mt__z`,`mt`.`vx` AS `mt__vx`,`mt`.`vy` AS `mt__vy`,`mt`.`vz` AS `mt__vz`,`mt`.`np` AS `mt__np`,`mt`.`mass` AS `mt__mass`,`mt`.`size` AS `mt__size`,`mt`.`spin` AS `mt__spin`,`mt`.`ix` AS `mt__ix`,`mt`.`iy` AS `mt__iy`,`mt`.`iz` AS `mt__iz`,`mt`.`phkey` AS `mt__phkey`,`f`.`f__fofId` AS `f__fofId`,`f`.`f__snapnum` AS `f__snapnum`,`f`.`f__level` AS `f__level`,`f`.`f__NInFile` AS `f__NInFile`,`f`.`f__x` AS `f__x`,`f`.`f__y` AS `f__y`,`f`.`f__z` AS `f__z`,`f`.`f__vx` AS `f__vx`,`f`.`f__vy` AS `f__vy`,`f`.`f__vz` AS `f__vz`,`f`.`f__np` AS `f__np`,`f`.`f__mass` AS `f__mass`,`f`.`f__size` AS `f__size`,`f`.`f__disp` AS `f__disp`,`f`.`f__disp_v` AS `f__disp_v`,`f`.`f__delta` AS `f__delta`,`f`.`f__spin` AS `f__spin`,`f`.`f__angMom_x` AS `f__angMom_x`,`f`.`f__angMom_y` AS `f__angMom_y`,`f`.`f__angMom_z` AS `f__angMom_z`,`f`.`f__angMom` AS `f__angMom`,`f`.`f__axis1` AS `f__axis1`,`f`.`f__axis2` AS `f__axis2`,`f`.`f__axis3` AS `f__axis3`,`f`.`f__axis1_x` AS `f__axis1_x`,`f`.`f__axis1_y` AS `f__axis1_y`,`f`.`f__axis1_z` AS `f__axis1_z`,`f`.`f__axis2_x` AS `f__axis2_x`,`f`.`f__axis2_y` AS `f__axis2_y`,`f`.`f__axis2_z` AS `f__axis2_z`,`f`.`f__axis3_x` AS `f__axis3_x`,`f`.`f__axis3_y` AS `f__axis3_y`,`f`.`f__axis3_z` AS `f__axis3_z`,`f`.`f__ix` AS `f__ix`,`f`.`f__iy` AS `f__iy`,`f`.`f__iz` AS `f__iz`,`f`.`f__phkey` AS `f__phkey`,`f`.`r__snapnum` AS `r__snapnum`,`f`.`r__aexp` AS `r__aexp`,`f`.`r__zred` AS `r__zred` FROM MDR1.FOFMtree AS `mt` JOIN ( SELECT `f__fofId`,`f__snapnum`,`f__level`,`f__NInFile`,`f__x`,`f__y`,`f__z`,`f__vx`,`f__vy`,`f__vz`,`f__np`,`f__mass`,`f__size`,`f__disp`,`f__disp_v`,`f__delta`,`f__spin`,`f__angMom_x`,`f__angMom_y`,`f__angMom_z`,`f__angMom`,`f__axis1`,`f__axis2`,`f__axis3`,`f__axis1_x`,`f__axis1_y`,`f__axis1_z`,`f__axis2_x`,`f__axis2_y`,`f__axis2_z`,`f__axis3_x`,`f__axis3_y`,`f__axis3_z`,`f__ix`,`f__iy`,`f__iz`,`f__phkey`,``,`r__snapnum`,`r__aexp`,`r__zred` FROM `aggregation_tmp_57441076` ) AS `f` WHERE ( `mt`.`fofId` = `f`.`f__fofId` ) AND ( `f`.`f__mass` = `mt`.`mass` ) ', 'aggregation_tmp_32272878')
-- CALL paquDropTmp('aggregation_tmp_42723925')
-- CALL paquDropTmp('aggregation_tmp_57441076')
-- USE spider_tmp_shard
-- SET @i=0
-- CREATE TABLE cosmosim_user_surfcast23.`2014-10-29-19-33-23-5449` ENGINE=MyISAM SELECT @i:=@i+1 AS `row_id`, `mt__fofTreeId`,`mt__fofId`,`mt__treeSnapnum`,`mt__descendantId`,`mt__lastProgId`,`mt__mainLeafId`,`mt__treeRootId`,`mt__x`,`mt__y`,`mt__z`,`mt__vx`,`mt__vy`,`mt__vz`,`mt__np`,`mt__mass`,`mt__size`,`mt__spin`,`mt__ix`,`mt__iy`,`mt__iz`,`mt__phkey`,`f__fofId`,`f__snapnum`,`f__level`,`f__NInFile`,`f__x`,`f__y`,`f__z`,`f__vx`,`f__vy`,`f__vz`,`f__np`,`f__mass`,`f__size`,`f__disp`,`f__disp_v`,`f__delta`,`f__spin`,`f__angMom_x`,`f__angMom_y`,`f__angMom_z`,`f__angMom`,`f__axis1`,`f__axis2`,`f__axis3`,`f__axis1_x`,`f__axis1_y`,`f__axis1_z`,`f__axis2_x`,`f__axis2_y`,`f__axis2_z`,`f__axis3_x`,`f__axis3_y`,`f__axis3_z`,`f__ix`,`f__iy`,`f__iz`,`f__phkey`,`r__snapnum`,`r__aexp`,`r__zred` FROM `aggregation_tmp_32272878` 
-- CALL paquDropTmp('aggregation_tmp_32272878')

What I would like to know is why am I getting this error and how can I avoid it or work around. 我想知道的是为什么我会收到此错误,以及如何避免或解决此错误。 Thank you. 谢谢。

The issue seems to be with how PaQu is expanding your columns from r.* to r.col1, r.col2, r.col3, ... 问题似乎与PaQu如何将列从r.*扩展到r.col1, r.col2, r.col3, ...

It seems to specifically be having a hard time with your r table, MDR1.Redshifts . 您的rMDR1.Redshifts似乎特别困难。 Somehow the parser is expanding r.* to include `r`.`r.` AS `` which is invalid. 解析器以某种方式将r.*扩展为包括无效的`r`.`r.` AS ``

Explicitly listing out the columns on the trouble table table should fix the issue. 明确列出故障表表中的列应该可以解决该问题。

You might also want to open an issue with PaQu and include DESCRIBE s of the tables causing the issue. 您可能还想用PaQu打开一个问题,并包含导致问题的表的DESCRIBE

The error that you are getting doesn't make sense with what you have posted. 您收到的错误与您发布的内容无关。 First, try using the more traditional join syntax: 首先,尝试使用更传统的联接语法:

SELECT DISTINCT * 
   FROM MDR1.FOFMtree mt 
           INNER JOIN MDR1.FOF f 
              ON mt.mass=f.mass 
              INNER JOIN MDR1.Redshifts r 
                 ON f.snapnum = r.snapnum;

If this doesn't help immediately, try recreating your problem at sqlfiddle.com. 如果这样做不能立即解决问题,请尝试在sqlfiddle.com上重新创建问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM