Hi Erik,

I am not sure I understand your query. However, it looks to me as though it is trying to inner join DATACOLLECTION_ELEMENT to the previous left join result. The compiler is objecting that THIS.ID is not a column in either DATACOLLECTION_ELEMENT or the previous left join. THIS is the correlation name for another table in the FROM list but it is outside the scope of that inner join.

I have taken the liberty of rearranging your query. Given the commutativity and associativity of the inner join operator, I hope that this re-arranged query accomplishes what you intend. This rewritten query does compile:

SELECT DISTINCT 'org.jpox.samples.performance.DataCollection' AS
JPOXMETADATA,THIS.DATA_GROUP,THIS.ID
FROM
(
  (
     DATACOLLECTION THIS INNER JOIN DATACOLLECTION_ELEMENTS THIS_ELEMENTS
     ON THIS_ELEMENTS.ID_OID = THIS.ID
  )
  INNER JOIN DATAELEMENT UNBOUND_F ON THIS_ELEMENTS.ID_EID = UNBOUND_F.ID
),
(
  DATAELEMENT UNBOUND_E
  LEFT OUTER JOIN DATAELEMENT UNBOUND_E_DATA
  ON UNBOUND_E.ID = UNBOUND_E_DATA.ID
)
WHERE UNBOUND_E_DATA."DATA" = 'Something' AND UNBOUND_E.ID = UNBOUND_F.ID
AND (THIS.DATA_GROUP = 1);

Regards,
-Rick

[EMAIL PROTECTED] wrote:

Should I understand the silence as YES?

Erik Bengtson


-----Original Message-----
From: Erik Bengtson Sent: Saturday, November 05, 2005 2:11 PM
To: derby-user@db.apache.org
Subject: [Derby 10.1] SELECT ... raises "An ON clause associated with a
JOIN operator is not valid"

Hi,

Below is the script to reproduce the issue. When the SELECT stmt is run,
derby raises "An ON clause associated with a JOIN operator is not valid"

Show I raise a JIRA defect?

CREATE TABLE DATAELEMENT
(
   ID INTEGER NOT NULL,
   "DATA" VARCHAR(255)
)
ALTER TABLE DATAELEMENT ADD CONSTRAINT DATAELEMENT_PK PRIMARY KEY (ID)
CREATE TABLE DATACOLLECTION
(
   ID INTEGER NOT NULL,
   "DATA_GROUP" INTEGER NOT NULL
)
ALTER TABLE DATACOLLECTION ADD CONSTRAINT DATACOLLECTION_PK PRIMARY KEY
(ID)
CREATE TABLE DATACOLLECTION_ELEMENTS
(
   ID_OID INTEGER NOT NULL,
   ID_EID INTEGER NOT NULL
)
ALTER TABLE DATACOLLECTION_ELEMENTS ADD CONSTRAINT DATACOLLECTI8E_PK
PRIMARY KEY (ID_OID,ID_EID)
CREATE TABLE DATACOLLECTION_ELEMENTSCACHED
(
   ID_OID INTEGER NOT NULL,
   ID_EID INTEGER NOT NULL
)
ALTER TABLE DATACOLLECTION_ELEMENTSCACHED ADD CONSTRAINT DATACOLLECTIKP_PK
PRIMARY KEY (ID_OID,ID_EID)


SELECT DISTINCT 'org.jpox.samples.performance.DataCollection' AS
JPOXMETADATA,THIS.DATA_GROUP,THIS.ID FROM DATACOLLECTION THIS,
DATAELEMENT UNBOUND_E
LEFT OUTER JOIN DATAELEMENT UNBOUND_E_DATA ON UNBOUND_E.ID =
UNBOUND_E_DATA.ID INNER JOIN DATACOLLECTION_ELEMENTS THIS_ELEMENTS ON THIS_ELEMENTS.ID_OID = THIS.ID INNER JOIN DATAELEMENT UNBOUND_F ON THIS_ELEMENTS.ID_EID = UNBOUND_F.ID
WHERE UNBOUND_E_DATA."DATA" = 'Something' AND UNBOUND_E.ID = UNBOUND_F.ID
AND (THIS.DATA_GROUP = 1)

Regards,

Erik Bengtson
[De
RE

Reply via email to