masoud_sedighy
Registered User.
- Local time
- Yesterday, 20:02
- Joined
- Dec 10, 2011
- Messages
- 132
In my query there is a sub query, now when I join tables with inner joint there is no problem according to below code.
<code>
SELECT tblDocuments.[Owner Document Number], tblTransmittals.POI, tblPurposeofIssue.[Purpose of Issue Description], tblTransmittals.REV, tblTransmittals.[To-Owner-Tr-No], tblDocTranstoCon.TransmitToCon, tblTranstoCon.IssuedDate
FROM tblTranstoCon INNER JOIN (((tblDocuments INNER JOIN tblTransmittals ON tblDocuments.[Owner Document Number] = tblTransmittals.[Owner Document Number]) INNER JOIN tblDocTranstoCon ON (tblTransmittals.[Owner Document Number] = tblDocTranstoCon.[Owner Document Number]) AND (tblTransmittals.[To-Owner-Tr-No] = tblDocTranstoCon.[To-Owner-Tr-No])) INNER JOIN tblPurposeofIssue ON tblTransmittals.POI = tblPurposeofIssue.[Purpose of Issue]) ON tblTranstoCon.TRANSMITtoCon = tblDocTranstoCon.TransmitToCon
WHERE (((tblTransmittals.REV)=(select max(REV) from tblTransmittals as t1 where t1.[Owner Document Number]=tblTransmittals.[Owner Document Number])));
When I change relation to left joint, I received error “sql statement could not be executed because it contains ambiguous outer joint.
<code>
SELECT tblDocuments.[Owner Document Number], tblTransmittals.POI, tblPurposeofIssue.[Purpose of Issue Description], tblTransmittals.REV, tblTransmittals.[To-Owner-Tr-No], tblDocTranstoCon.TransmitToCon, tblTranstoCon.IssuedDate
FROM tblTranstoCon INNER JOIN (((tblDocuments LEFT JOIN tblTransmittals ON tblDocuments.[Owner Document Number] = tblTransmittals.[Owner Document Number]) LEFT JOIN tblDocTranstoCon ON (tblTransmittals.[Owner Document Number] = tblDocTranstoCon.[Owner Document Number]) AND (tblTransmittals.[To-Owner-Tr-No] = tblDocTranstoCon.[To-Owner-Tr-No])) INNER JOIN tblPurposeofIssue ON tblTransmittals.POI = tblPurposeofIssue.[Purpose of Issue]) ON tblTranstoCon.TRANSMITtoCon = tblDocTranstoCon.TransmitToCon
WHERE (((tblTransmittals.REV)=(select max(REV) from tblTransmittals as t1 where t1.[Owner Document Number]=tblTransmittals.[Owner Document Number])));
</code>
After that I tried to make a separate query and then use left joint, but my query is slow.
Now I would like to know is it possible with one query I use left joint and subquery.
<code>
SELECT tblDocuments.[Owner Document Number], tblTransmittals.POI, tblPurposeofIssue.[Purpose of Issue Description], tblTransmittals.REV, tblTransmittals.[To-Owner-Tr-No], tblDocTranstoCon.TransmitToCon, tblTranstoCon.IssuedDate
FROM tblTranstoCon INNER JOIN (((tblDocuments INNER JOIN tblTransmittals ON tblDocuments.[Owner Document Number] = tblTransmittals.[Owner Document Number]) INNER JOIN tblDocTranstoCon ON (tblTransmittals.[Owner Document Number] = tblDocTranstoCon.[Owner Document Number]) AND (tblTransmittals.[To-Owner-Tr-No] = tblDocTranstoCon.[To-Owner-Tr-No])) INNER JOIN tblPurposeofIssue ON tblTransmittals.POI = tblPurposeofIssue.[Purpose of Issue]) ON tblTranstoCon.TRANSMITtoCon = tblDocTranstoCon.TransmitToCon
WHERE (((tblTransmittals.REV)=(select max(REV) from tblTransmittals as t1 where t1.[Owner Document Number]=tblTransmittals.[Owner Document Number])));
When I change relation to left joint, I received error “sql statement could not be executed because it contains ambiguous outer joint.
<code>
SELECT tblDocuments.[Owner Document Number], tblTransmittals.POI, tblPurposeofIssue.[Purpose of Issue Description], tblTransmittals.REV, tblTransmittals.[To-Owner-Tr-No], tblDocTranstoCon.TransmitToCon, tblTranstoCon.IssuedDate
FROM tblTranstoCon INNER JOIN (((tblDocuments LEFT JOIN tblTransmittals ON tblDocuments.[Owner Document Number] = tblTransmittals.[Owner Document Number]) LEFT JOIN tblDocTranstoCon ON (tblTransmittals.[Owner Document Number] = tblDocTranstoCon.[Owner Document Number]) AND (tblTransmittals.[To-Owner-Tr-No] = tblDocTranstoCon.[To-Owner-Tr-No])) INNER JOIN tblPurposeofIssue ON tblTransmittals.POI = tblPurposeofIssue.[Purpose of Issue]) ON tblTranstoCon.TRANSMITtoCon = tblDocTranstoCon.TransmitToCon
WHERE (((tblTransmittals.REV)=(select max(REV) from tblTransmittals as t1 where t1.[Owner Document Number]=tblTransmittals.[Owner Document Number])));
</code>
After that I tried to make a separate query and then use left joint, but my query is slow.
Now I would like to know is it possible with one query I use left joint and subquery.