I'm only aware of this: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins but its unclear if it supports your syntax or not.
Nicholas Szandor Hakobian Data Scientist Rally Health nicholas.hakob...@rallyhealth.com On Thu, Feb 4, 2016 at 12:57 PM, Dave Nicodemus <dave.nicode...@gmail.com> wrote: > Thanks Nick, > > I did a few experiments and found that the version of the query below does > work. So I'm not sure about your theory. Do you know if there is a document > that spells out the exact accepted syntax ? > > SELECT COUNT(*) > FROM (nation n INNER JOIN customer c ON n.n_nationkey = c.c_nationkey) INNER > JOIN orders o ON c.c_custkey = o.o_custkey; > > > > > On Thu, Feb 4, 2016 at 3:45 PM, Nicholas Hakobian > <nicholas.hakob...@rallyhealth.com> wrote: >> >> I don't believe Hive supports that join format. Its expecting either a >> table name or a subquery. If its a subquery, it usually requires it to >> have a table name alias so it can be referenced in an outer statement. >> >> -Nick >> >> Nicholas Szandor Hakobian >> Data Scientist >> Rally Health >> nicholas.hakob...@rallyhealth.com >> >> On Thu, Feb 4, 2016 at 11:28 AM, Dave Nicodemus >> <dave.nicode...@gmail.com> wrote: >> > Using hive 1.2.1.2.3 Connecting using JDBC, issuing the following query >> > : >> > >> > SELECT COUNT(*) >> > FROM nation n >> > INNER JOIN (customer c >> > INNER JOIN orders o ON c.c_custkey = >> > o.o_custkey) >> > ON n.n_nationkey = c.c_nationkey; >> > >> > Generates the NPE and stack below. Fields are integer data type >> > >> > Does anyone know if this is a known issue and whether it's fixed >> > someplace >> > ? >> > >> > Thanks, >> > Dave >> > >> > Stack >> > -------- >> > Caused by: java.lang.NullPointerExcEeption: Remote >> > java.lang.NullPointerException: null >> > >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.isPresent(SemanticAnalyzer.java:2046) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondPopulateAlias(SemanticAnalyzer.java:2109) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondPopulateAlias(SemanticAnalyzer.java:2185) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondition(SemanticAnalyzer.java:2445) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondition(SemanticAnalyzer.java:2386) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genJoinTree(SemanticAnalyzer.java:8192) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genJoinTree(SemanticAnalyzer.java:8131) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:9709) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:9636) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genOPTree(SemanticAnalyzer.java:10109) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:329) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10120) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:211) >> > at >> > >> > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:227) >> > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:454) >> > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:314) >> > at >> > org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1164) >> > at >> > org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1158) >> > at >> > >> > org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:110) >> > >> > >> > >> > > >