<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Difference between inner join and left outer joins? in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277230#M783605</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Haritha&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this will help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Pls reward if help.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joins are used to fetch data fast from Database tables:&lt;/P&gt;&lt;P&gt;Tables are joined with the proper key fields to fetch the data properly.&lt;/P&gt;&lt;P&gt;If there are no proper key fields between tables don't use Joins;&lt;/P&gt;&lt;P&gt;Important thing is that don't USE JOINS FOR CLUSTER tableslike BSEG and KONV.&lt;/P&gt;&lt;P&gt;Only use for Transparenmt tables.&lt;/P&gt;&lt;P&gt;You can also use joins for the database VIews to fetch the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;JOINS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;... FROM tabref1 [INNER] JOIN tabref2 ON cond &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Effect &lt;/P&gt;&lt;P&gt;The data is to be selected from transparent database tables and/or views determined by tabref1 and tabref2. tabref1 and tabref2 each have the same form as in variant 1 or are themselves Join expressions. The keyword INNER does not have to be specified. The database tables or views determined by tabref1 and tabref2 must be recognized by the ABAP Dictionary. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In a relational data structure, it is quite normal for data that belongs together to be split up across several tables to help the process of standardization (see relational databases). To regroup this information into a database query, you can link tables using the join command. This formulates conditions for the columns in the tables involved. The inner join contains all combinations of lines from the database table determined by tabref1 with lines from the table determined by tabref2, whose values together meet the logical condition (join condition) specified using ON&amp;gt;cond. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Inner join between table 1 and table 2, where column D in both tables in the join condition is set the same: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table 1 Table 2 &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;E&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;F&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;G&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;H&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;|--&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;--| &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\/ &lt;/P&gt;&lt;P&gt;Inner Join &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;E&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;F&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;G&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;H&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;|--&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;--| &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Output a list of all flights from Frankfurt to New York between September 10th and 20th, 2001 that are not sold out: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: DATE LIKE SFLIGHT-FLDATE, &lt;/P&gt;&lt;P&gt;CARRID LIKE SFLIGHT-CARRID, &lt;/P&gt;&lt;P&gt;CONNID LIKE SFLIGHT-CONNID. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT F&lt;SUB&gt;CARRID F&lt;/SUB&gt;CONNID F~FLDATE &lt;/P&gt;&lt;P&gt;INTO (CARRID, CONNID, DATE) &lt;/P&gt;&lt;P&gt;FROM SFLIGHT AS F INNER JOIN SPFLI AS P &lt;/P&gt;&lt;P&gt;ON F&lt;SUB&gt;CARRID = P&lt;/SUB&gt;CARRID AND &lt;/P&gt;&lt;P&gt;F&lt;SUB&gt;CONNID = P&lt;/SUB&gt;CONNID &lt;/P&gt;&lt;P&gt;WHERE P~CITYFROM = 'FRANKFURT' &lt;/P&gt;&lt;P&gt;AND P~CITYTO = 'NEW YORK' &lt;/P&gt;&lt;P&gt;AND F~FLDATE BETWEEN '20010910' AND '20010920' &lt;/P&gt;&lt;P&gt;AND F&lt;SUB&gt;SEATSOCC &amp;lt; F&lt;/SUB&gt;SEATSMAX. &lt;/P&gt;&lt;P&gt;WRITE: / DATE, CARRID, CONNID. &lt;/P&gt;&lt;P&gt;ENDSELECT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If there are columns with the same name in both tables, you must distinguish between them by prefixing the field descriptor with the table name or a table alias. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;In order to determine the result of a SELECT command where the FROM clause contains a join, the database system first creates a temporary table containing the lines that meet the ON condition. The WHERE condition is then applied to the temporary table. It does not matter in an inner join whether the condition is in the ON or WHEREclause. The following example returns the same solution as the previous one. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Output of a list of all flights from Frankfurt to New York between September 10th and 20th, 2001 that are not sold out: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: DATE LIKE SFLIGHT-FLDATE, &lt;/P&gt;&lt;P&gt;CARRID LIKE SFLIGHT-CARRID, &lt;/P&gt;&lt;P&gt;CONNID LIKE SFLIGHT-CONNID. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT F&lt;SUB&gt;CARRID F&lt;/SUB&gt;CONNID F~FLDATE &lt;/P&gt;&lt;P&gt;INTO (CARRID, CONNID, DATE) &lt;/P&gt;&lt;P&gt;FROM SFLIGHT AS F INNER JOIN SPFLI AS P &lt;/P&gt;&lt;P&gt;ON F&lt;SUB&gt;CARRID = P&lt;/SUB&gt;CARRID &lt;/P&gt;&lt;P&gt;WHERE F&lt;SUB&gt;CONNID = P&lt;/SUB&gt;CONNID &lt;/P&gt;&lt;P&gt;AND P~CITYFROM = 'FRANKFURT' &lt;/P&gt;&lt;P&gt;AND P~CITYTO = 'NEW YORK' &lt;/P&gt;&lt;P&gt;AND F~FLDATE BETWEEN '20010910' AND '20010920' &lt;/P&gt;&lt;P&gt;AND F&lt;SUB&gt;SEATSOCC &amp;lt; F&lt;/SUB&gt;SEATSMAX. &lt;/P&gt;&lt;P&gt;WRITE: / DATE, CARRID, CONNID. &lt;/P&gt;&lt;P&gt;ENDSELECT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;Since not all of the database systems supported by SAP use the standard syntax for ON conditions, the syntax has been restricted. It only allows those joins that produce the same results on all of the supported database systems: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only a table or view may appear to the right of the JOIN operator, not another join expression. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only AND is possible in the ON condition as a logical operator. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each comparison in the ON condition must contain a field from the right-hand table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If an outer join occurs in the FROM clause, all the ON conditions must contain at least one "real" JOIN condition (a condition that contains a field from tabref1 amd a field from tabref2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;In some cases, '*' may be specified in the SELECT clause, and an internal table or work area is entered into the INTO clause (instead of a list of fields). If so, the fields are written to the target area from left to right in the order in which the tables appear in the FROM clause, according to the structure of each table work area. There can then be gaps between table work areas if you use an Alignment Request. For this reason, you should define the target work area with reference to the types of the database tables, not simply by counting the total number of fields. For an example, see below: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Variant 3 &lt;/P&gt;&lt;P&gt;... FROM tabref1 LEFT [OUTER] JOIN tabref2 ON cond &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Effect &lt;/P&gt;&lt;P&gt;Selects the data from the transparent database tables and/or views specified in tabref1 and tabref2. tabref1 und tabref2 both have either the same form as in variant 1 or are themselves join expressions. The keyword OUTER can be omitted. The database tables or views specified in tabref1 and tabref2 must be recognized by the ABAP-Dictionary. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to determine the result of a SELECT command where the FROM clause contains a left outer join, the database system creates a temporary table containing the lines that meet the ON condition. The remaining fields from the left-hand table (tabref1) are then added to this table, and their corresponding fields from the right-hand table are filled with ZERO values. The system then applies the WHERE condition to the table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Left outer join between table 1 and table 2 where column D in both tables set the join condition: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table 1 Table 2 &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;E&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;F&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;G&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;H&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;|--&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;--| &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\/ &lt;/P&gt;&lt;P&gt;Left Outer Join &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;E&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;F&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;G&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;H&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;|--&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;--| &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Output a list of all custimers with their bookings for October 15th, 2001: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: CUSTOMER TYPE SCUSTOM, &lt;/P&gt;&lt;P&gt;BOOKING TYPE SBOOK. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SCUSTOM&lt;SUB&gt;NAME SCUSTOM&lt;/SUB&gt;POSTCODE SCUSTOM~CITY &lt;/P&gt;&lt;P&gt;SBOOK&lt;SUB&gt;FLDATE SBOOK&lt;/SUB&gt;CARRID SBOOK&lt;SUB&gt;CONNID SBOOK&lt;/SUB&gt;BOOKID &lt;/P&gt;&lt;P&gt;INTO (CUSTOMER-NAME, CUSTOMER-POSTCODE, CUSTOMER-CITY, &lt;/P&gt;&lt;P&gt;BOOKING-FLDATE, BOOKING-CARRID, BOOKING-CONNID, &lt;/P&gt;&lt;P&gt;BOOKING-BOOKID) &lt;/P&gt;&lt;P&gt;FROM SCUSTOM LEFT OUTER JOIN SBOOK &lt;/P&gt;&lt;P&gt;ON SCUSTOM&lt;SUB&gt;ID = SBOOK&lt;/SUB&gt;CUSTOMID AND &lt;/P&gt;&lt;P&gt;SBOOK~FLDATE = '20011015' &lt;/P&gt;&lt;P&gt;ORDER BY SCUSTOM&lt;SUB&gt;NAME SBOOK&lt;/SUB&gt;FLDATE. &lt;/P&gt;&lt;P&gt;WRITE: / CUSTOMER-NAME, CUSTOMER-POSTCODE, CUSTOMER-CITY, &lt;/P&gt;&lt;P&gt;BOOKING-FLDATE, BOOKING-CARRID, BOOKING-CONNID, &lt;/P&gt;&lt;P&gt;BOOKING-BOOKID. &lt;/P&gt;&lt;P&gt;ENDSELECT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If there are columns with the same name in both tables, you must distinguish between them by prefixing the field descriptor with the table name or using an alias. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;For the resulting set of a SELECT command with a left outer join in the FROM clause, it is generally of crucial importance whether a logical condition is in the ON or WHERE condition. Since not all of the database systems supported by SAP themselves support the standard syntax and semantics of the left outer join, the syntax has been restricted to those cases that return the same solution in all database systems: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only a table or view may come after the JOIN operator, not another join statement. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only logical operator allowed in the ON condition is AND. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each comparison in the ON condition must contain a field from the right-hand table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Comparisons in the WHERE condition must not contain a field from the right-hand table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ON condition must contain at least one "real" JOIN condition (a condition in which a field from tabref1 as well as from tabref2 occurs). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;In some cases, '*' may be specivied as the field list in the SELECT clause, and an internal table or work area is entered in the INTO clause (instead of a list of fields). If so, the fields are written to the target area from left to right in the order in which the tables appear in the llen in der FROM clause, according to the structure of each table work area. There can be gaps between the table work areas if you use an Alignment Request. For this reason, you should define the target work area with reference to the types of the database tables, as in the following example (not simply by counting the total number of fields). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Example of a JOIN with more than two tables: Select all flights from Frankfurt to New York between September 10th and 20th, 2001 where there are available places, and display the name of the airline. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF WA, &lt;/P&gt;&lt;P&gt;FLIGHT TYPE SFLIGHT, &lt;/P&gt;&lt;P&gt;PFLI TYPE SPFLI, &lt;/P&gt;&lt;P&gt;CARR TYPE SCARR, &lt;/P&gt;&lt;P&gt;END OF WA. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * INTO WA &lt;/P&gt;&lt;P&gt;FROM ( SFLIGHT AS F INNER JOIN SPFLI AS P &lt;/P&gt;&lt;P&gt;ON F&lt;SUB&gt;CARRID = P&lt;/SUB&gt;CARRID AND &lt;/P&gt;&lt;P&gt;F&lt;SUB&gt;CONNID = P&lt;/SUB&gt;CONNID ) &lt;/P&gt;&lt;P&gt;INNER JOIN SCARR AS C &lt;/P&gt;&lt;P&gt;ON F&lt;SUB&gt;CARRID = C&lt;/SUB&gt;CARRID &lt;/P&gt;&lt;P&gt;WHERE P~CITYFROM = 'FRANKFURT' &lt;/P&gt;&lt;P&gt;AND P~CITYTO = 'NEW YORK' &lt;/P&gt;&lt;P&gt;AND F~FLDATE BETWEEN '20010910' AND '20010920' &lt;/P&gt;&lt;P&gt;AND F&lt;SUB&gt;SEATSOCC &amp;lt; F&lt;/SUB&gt;SEATSMAX. &lt;/P&gt;&lt;P&gt;WRITE: / WA-CARR-CARRNAME, WA-FLIGHT-FLDATE, WA-FLIGHT-CARRID, &lt;/P&gt;&lt;P&gt;WA-FLIGHT-CONNID. &lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 21 Jan 2008 04:37:41 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-21T04:37:41Z</dc:date>
    <item>
      <title>Difference between inner join and left outer joins?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277229#M783604</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone explain me the difference between inner join and left outer join with an example.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And when shall we go for left outer join?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regds&lt;/P&gt;&lt;P&gt;haritha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Jan 2008 04:34:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277229#M783604</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-21T04:34:16Z</dc:date>
    </item>
    <item>
      <title>Re: Difference between inner join and left outer joins?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277230#M783605</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Haritha&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this will help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Pls reward if help.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joins are used to fetch data fast from Database tables:&lt;/P&gt;&lt;P&gt;Tables are joined with the proper key fields to fetch the data properly.&lt;/P&gt;&lt;P&gt;If there are no proper key fields between tables don't use Joins;&lt;/P&gt;&lt;P&gt;Important thing is that don't USE JOINS FOR CLUSTER tableslike BSEG and KONV.&lt;/P&gt;&lt;P&gt;Only use for Transparenmt tables.&lt;/P&gt;&lt;P&gt;You can also use joins for the database VIews to fetch the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;JOINS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;... FROM tabref1 [INNER] JOIN tabref2 ON cond &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Effect &lt;/P&gt;&lt;P&gt;The data is to be selected from transparent database tables and/or views determined by tabref1 and tabref2. tabref1 and tabref2 each have the same form as in variant 1 or are themselves Join expressions. The keyword INNER does not have to be specified. The database tables or views determined by tabref1 and tabref2 must be recognized by the ABAP Dictionary. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In a relational data structure, it is quite normal for data that belongs together to be split up across several tables to help the process of standardization (see relational databases). To regroup this information into a database query, you can link tables using the join command. This formulates conditions for the columns in the tables involved. The inner join contains all combinations of lines from the database table determined by tabref1 with lines from the table determined by tabref2, whose values together meet the logical condition (join condition) specified using ON&amp;gt;cond. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Inner join between table 1 and table 2, where column D in both tables in the join condition is set the same: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table 1 Table 2 &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;E&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;F&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;G&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;H&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;|--&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;--| &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\/ &lt;/P&gt;&lt;P&gt;Inner Join &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;E&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;F&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;G&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;H&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;|--&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;--| &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Output a list of all flights from Frankfurt to New York between September 10th and 20th, 2001 that are not sold out: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: DATE LIKE SFLIGHT-FLDATE, &lt;/P&gt;&lt;P&gt;CARRID LIKE SFLIGHT-CARRID, &lt;/P&gt;&lt;P&gt;CONNID LIKE SFLIGHT-CONNID. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT F&lt;SUB&gt;CARRID F&lt;/SUB&gt;CONNID F~FLDATE &lt;/P&gt;&lt;P&gt;INTO (CARRID, CONNID, DATE) &lt;/P&gt;&lt;P&gt;FROM SFLIGHT AS F INNER JOIN SPFLI AS P &lt;/P&gt;&lt;P&gt;ON F&lt;SUB&gt;CARRID = P&lt;/SUB&gt;CARRID AND &lt;/P&gt;&lt;P&gt;F&lt;SUB&gt;CONNID = P&lt;/SUB&gt;CONNID &lt;/P&gt;&lt;P&gt;WHERE P~CITYFROM = 'FRANKFURT' &lt;/P&gt;&lt;P&gt;AND P~CITYTO = 'NEW YORK' &lt;/P&gt;&lt;P&gt;AND F~FLDATE BETWEEN '20010910' AND '20010920' &lt;/P&gt;&lt;P&gt;AND F&lt;SUB&gt;SEATSOCC &amp;lt; F&lt;/SUB&gt;SEATSMAX. &lt;/P&gt;&lt;P&gt;WRITE: / DATE, CARRID, CONNID. &lt;/P&gt;&lt;P&gt;ENDSELECT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If there are columns with the same name in both tables, you must distinguish between them by prefixing the field descriptor with the table name or a table alias. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;In order to determine the result of a SELECT command where the FROM clause contains a join, the database system first creates a temporary table containing the lines that meet the ON condition. The WHERE condition is then applied to the temporary table. It does not matter in an inner join whether the condition is in the ON or WHEREclause. The following example returns the same solution as the previous one. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Output of a list of all flights from Frankfurt to New York between September 10th and 20th, 2001 that are not sold out: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: DATE LIKE SFLIGHT-FLDATE, &lt;/P&gt;&lt;P&gt;CARRID LIKE SFLIGHT-CARRID, &lt;/P&gt;&lt;P&gt;CONNID LIKE SFLIGHT-CONNID. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT F&lt;SUB&gt;CARRID F&lt;/SUB&gt;CONNID F~FLDATE &lt;/P&gt;&lt;P&gt;INTO (CARRID, CONNID, DATE) &lt;/P&gt;&lt;P&gt;FROM SFLIGHT AS F INNER JOIN SPFLI AS P &lt;/P&gt;&lt;P&gt;ON F&lt;SUB&gt;CARRID = P&lt;/SUB&gt;CARRID &lt;/P&gt;&lt;P&gt;WHERE F&lt;SUB&gt;CONNID = P&lt;/SUB&gt;CONNID &lt;/P&gt;&lt;P&gt;AND P~CITYFROM = 'FRANKFURT' &lt;/P&gt;&lt;P&gt;AND P~CITYTO = 'NEW YORK' &lt;/P&gt;&lt;P&gt;AND F~FLDATE BETWEEN '20010910' AND '20010920' &lt;/P&gt;&lt;P&gt;AND F&lt;SUB&gt;SEATSOCC &amp;lt; F&lt;/SUB&gt;SEATSMAX. &lt;/P&gt;&lt;P&gt;WRITE: / DATE, CARRID, CONNID. &lt;/P&gt;&lt;P&gt;ENDSELECT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;Since not all of the database systems supported by SAP use the standard syntax for ON conditions, the syntax has been restricted. It only allows those joins that produce the same results on all of the supported database systems: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only a table or view may appear to the right of the JOIN operator, not another join expression. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only AND is possible in the ON condition as a logical operator. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each comparison in the ON condition must contain a field from the right-hand table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If an outer join occurs in the FROM clause, all the ON conditions must contain at least one "real" JOIN condition (a condition that contains a field from tabref1 amd a field from tabref2. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;In some cases, '*' may be specified in the SELECT clause, and an internal table or work area is entered into the INTO clause (instead of a list of fields). If so, the fields are written to the target area from left to right in the order in which the tables appear in the FROM clause, according to the structure of each table work area. There can then be gaps between table work areas if you use an Alignment Request. For this reason, you should define the target work area with reference to the types of the database tables, not simply by counting the total number of fields. For an example, see below: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Variant 3 &lt;/P&gt;&lt;P&gt;... FROM tabref1 LEFT [OUTER] JOIN tabref2 ON cond &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Effect &lt;/P&gt;&lt;P&gt;Selects the data from the transparent database tables and/or views specified in tabref1 and tabref2. tabref1 und tabref2 both have either the same form as in variant 1 or are themselves join expressions. The keyword OUTER can be omitted. The database tables or views specified in tabref1 and tabref2 must be recognized by the ABAP-Dictionary. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to determine the result of a SELECT command where the FROM clause contains a left outer join, the database system creates a temporary table containing the lines that meet the ON condition. The remaining fields from the left-hand table (tabref1) are then added to this table, and their corresponding fields from the right-hand table are filled with ZERO values. The system then applies the WHERE condition to the table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Left outer join between table 1 and table 2 where column D in both tables set the join condition: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table 1 Table 2 &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;E&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;F&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;G&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;H&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;|--&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;--| &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\ / &lt;/P&gt;&lt;P&gt;\/ &lt;/P&gt;&lt;P&gt;Left Outer Join &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;D&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;E&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;F&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;G&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;H&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;TD&gt;&lt;HR originaltext="---" /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h1&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;NULL&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;a4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;b4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;c4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;e2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;f2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;g2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;h2&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;|--&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;&lt;DEL&gt;|&lt;/DEL&gt;--| &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Output a list of all custimers with their bookings for October 15th, 2001: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: CUSTOMER TYPE SCUSTOM, &lt;/P&gt;&lt;P&gt;BOOKING TYPE SBOOK. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SCUSTOM&lt;SUB&gt;NAME SCUSTOM&lt;/SUB&gt;POSTCODE SCUSTOM~CITY &lt;/P&gt;&lt;P&gt;SBOOK&lt;SUB&gt;FLDATE SBOOK&lt;/SUB&gt;CARRID SBOOK&lt;SUB&gt;CONNID SBOOK&lt;/SUB&gt;BOOKID &lt;/P&gt;&lt;P&gt;INTO (CUSTOMER-NAME, CUSTOMER-POSTCODE, CUSTOMER-CITY, &lt;/P&gt;&lt;P&gt;BOOKING-FLDATE, BOOKING-CARRID, BOOKING-CONNID, &lt;/P&gt;&lt;P&gt;BOOKING-BOOKID) &lt;/P&gt;&lt;P&gt;FROM SCUSTOM LEFT OUTER JOIN SBOOK &lt;/P&gt;&lt;P&gt;ON SCUSTOM&lt;SUB&gt;ID = SBOOK&lt;/SUB&gt;CUSTOMID AND &lt;/P&gt;&lt;P&gt;SBOOK~FLDATE = '20011015' &lt;/P&gt;&lt;P&gt;ORDER BY SCUSTOM&lt;SUB&gt;NAME SBOOK&lt;/SUB&gt;FLDATE. &lt;/P&gt;&lt;P&gt;WRITE: / CUSTOMER-NAME, CUSTOMER-POSTCODE, CUSTOMER-CITY, &lt;/P&gt;&lt;P&gt;BOOKING-FLDATE, BOOKING-CARRID, BOOKING-CONNID, &lt;/P&gt;&lt;P&gt;BOOKING-BOOKID. &lt;/P&gt;&lt;P&gt;ENDSELECT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If there are columns with the same name in both tables, you must distinguish between them by prefixing the field descriptor with the table name or using an alias. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;For the resulting set of a SELECT command with a left outer join in the FROM clause, it is generally of crucial importance whether a logical condition is in the ON or WHERE condition. Since not all of the database systems supported by SAP themselves support the standard syntax and semantics of the left outer join, the syntax has been restricted to those cases that return the same solution in all database systems: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Only a table or view may come after the JOIN operator, not another join statement. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The only logical operator allowed in the ON condition is AND. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each comparison in the ON condition must contain a field from the right-hand table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Comparisons in the WHERE condition must not contain a field from the right-hand table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ON condition must contain at least one "real" JOIN condition (a condition in which a field from tabref1 as well as from tabref2 occurs). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note &lt;/P&gt;&lt;P&gt;In some cases, '*' may be specivied as the field list in the SELECT clause, and an internal table or work area is entered in the INTO clause (instead of a list of fields). If so, the fields are written to the target area from left to right in the order in which the tables appear in the llen in der FROM clause, according to the structure of each table work area. There can be gaps between the table work areas if you use an Alignment Request. For this reason, you should define the target work area with reference to the types of the database tables, as in the following example (not simply by counting the total number of fields). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Example of a JOIN with more than two tables: Select all flights from Frankfurt to New York between September 10th and 20th, 2001 where there are available places, and display the name of the airline. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF WA, &lt;/P&gt;&lt;P&gt;FLIGHT TYPE SFLIGHT, &lt;/P&gt;&lt;P&gt;PFLI TYPE SPFLI, &lt;/P&gt;&lt;P&gt;CARR TYPE SCARR, &lt;/P&gt;&lt;P&gt;END OF WA. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * INTO WA &lt;/P&gt;&lt;P&gt;FROM ( SFLIGHT AS F INNER JOIN SPFLI AS P &lt;/P&gt;&lt;P&gt;ON F&lt;SUB&gt;CARRID = P&lt;/SUB&gt;CARRID AND &lt;/P&gt;&lt;P&gt;F&lt;SUB&gt;CONNID = P&lt;/SUB&gt;CONNID ) &lt;/P&gt;&lt;P&gt;INNER JOIN SCARR AS C &lt;/P&gt;&lt;P&gt;ON F&lt;SUB&gt;CARRID = C&lt;/SUB&gt;CARRID &lt;/P&gt;&lt;P&gt;WHERE P~CITYFROM = 'FRANKFURT' &lt;/P&gt;&lt;P&gt;AND P~CITYTO = 'NEW YORK' &lt;/P&gt;&lt;P&gt;AND F~FLDATE BETWEEN '20010910' AND '20010920' &lt;/P&gt;&lt;P&gt;AND F&lt;SUB&gt;SEATSOCC &amp;lt; F&lt;/SUB&gt;SEATSMAX. &lt;/P&gt;&lt;P&gt;WRITE: / WA-CARR-CARRNAME, WA-FLIGHT-FLDATE, WA-FLIGHT-CARRID, &lt;/P&gt;&lt;P&gt;WA-FLIGHT-CONNID. &lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Jan 2008 04:37:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277230#M783605</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-21T04:37:41Z</dc:date>
    </item>
    <item>
      <title>Re: Difference between inner join and left outer joins?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277231#M783606</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Haritha,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using Joins we can select data from two tables with the JOIN keyword, like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example INNER JOIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Syntax&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT field1, field2, field3&lt;/P&gt;&lt;P&gt;FROM first_table&lt;/P&gt;&lt;P&gt;INNER JOIN second_table&lt;/P&gt;&lt;P&gt;ON first_table.keyfield = second_table.foreign_keyfield&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Who has ordered a product, and what did they order?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT Employees.Name, Orders.Product&lt;/P&gt;&lt;P&gt;FROM Employees&lt;/P&gt;&lt;P&gt;INNER JOIN Orders&lt;/P&gt;&lt;P&gt;ON Employees.Employee_ID=Orders.Employee_ID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The &lt;STRONG&gt;INNER JOIN&lt;/STRONG&gt; returns all rows from both tables where there is a match. If there are rows in Employees that do not have matches in Orders, those rows will not be listed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Result&lt;/P&gt;&lt;P&gt;Name Product&lt;/P&gt;&lt;P&gt;Hansen, Ola Printer&lt;/P&gt;&lt;P&gt;Svendson, Stephen Table&lt;/P&gt;&lt;P&gt;Svendson, Stephen Chair&lt;/P&gt;&lt;P&gt;Example LEFT JOIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Syntax&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT field1, field2, field3&lt;/P&gt;&lt;P&gt;FROM first_table&lt;/P&gt;&lt;P&gt;LEFT JOIN second_table&lt;/P&gt;&lt;P&gt;ON first_table.keyfield = second_table.foreign_keyfield&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;List all employees, and their orders - if any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT Employees.Name, Orders.Product&lt;/P&gt;&lt;P&gt;FROM Employees&lt;/P&gt;&lt;P&gt;LEFT JOIN Orders&lt;/P&gt;&lt;P&gt;ON Employees.Employee_ID=Orders.Employee_ID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The &lt;STRONG&gt;LEFT JOIN&lt;/STRONG&gt; returns all the rows from the first table (Employees), even if there are no matches in the second table (Orders). If there are rows in Employees that do not have matches in Orders, those rows also will be listed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Result&lt;/P&gt;&lt;P&gt;Name Product&lt;/P&gt;&lt;P&gt;Hansen, Ola Printer&lt;/P&gt;&lt;P&gt;Svendson, Tove &lt;/P&gt;&lt;P&gt;Svendson, Stephen Table&lt;/P&gt;&lt;P&gt;Svendson, Stephen Chair&lt;/P&gt;&lt;P&gt;Pettersen, Kari &lt;/P&gt;&lt;P&gt;Example RIGHT JOIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Syntax&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT field1, field2, field3&lt;/P&gt;&lt;P&gt;FROM first_table&lt;/P&gt;&lt;P&gt;RIGHT JOIN second_table&lt;/P&gt;&lt;P&gt;ON first_table.keyfield = second_table.foreign_keyfield&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;List all orders, and who has ordered - if any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT Employees.Name, Orders.Product&lt;/P&gt;&lt;P&gt;FROM Employees&lt;/P&gt;&lt;P&gt;RIGHT JOIN Orders&lt;/P&gt;&lt;P&gt;ON Employees.Employee_ID=Orders.Employee_ID&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The &lt;STRONG&gt;RIGHT JOIN&lt;/STRONG&gt; returns all the rows from the second table (Orders), even if there are no matches in the first table (Employees). If there had been any rows in Orders that did not have matches in Employees, those rows also would have been listed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Result&lt;/P&gt;&lt;P&gt;Name Product&lt;/P&gt;&lt;P&gt;Hansen, Ola Printer&lt;/P&gt;&lt;P&gt;Svendson, Stephen Table&lt;/P&gt;&lt;P&gt;Svendson, Stephen Chair&lt;/P&gt;&lt;P&gt;Example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Who ordered a printer?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT Employees.Name&lt;/P&gt;&lt;P&gt;FROM Employees&lt;/P&gt;&lt;P&gt;INNER JOIN Orders&lt;/P&gt;&lt;P&gt;ON Employees.Employee_ID=Orders.Employee_ID&lt;/P&gt;&lt;P&gt;WHERE Orders.Product = 'Printer'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thankyou,&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Jan 2008 04:40:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277231#M783606</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-21T04:40:25Z</dc:date>
    </item>
    <item>
      <title>Re: Difference between inner join and left outer joins?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277232#M783607</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;difference between inner join  and outer join is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;inner join means  it selects   same data only  in both the tables&lt;/P&gt;&lt;P&gt;outer join means first it  selects same data and second it selects different data from the both tables.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Jan 2008 04:50:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277232#M783607</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-21T04:50:23Z</dc:date>
    </item>
    <item>
      <title>Re: Difference between inner join and left outer joins?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277233#M783608</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Joins are used to join 2 or more tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INNER JOIN: Records will be fetched based on the common data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ex:  SELECT mara&lt;SUB&gt;matnr marc&lt;/SUB&gt;werks  &lt;/P&gt;&lt;P&gt;          FROM MARA&lt;/P&gt;&lt;P&gt;          INNER JOIN MARC &lt;/P&gt;&lt;P&gt;          ON  mara-matnr  =  marc-matnr&lt;/P&gt;&lt;P&gt;          Where mara-matnr =  xxxxxx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    Data from MARA &amp;amp; MARC will be fetched only when matnr exist in both the tables. If data doesnt exist in one table, those records will not be fetched.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OUTTER JOIN: Even if data doesnt exist in the right most table, (i.e., table on which outer join is done,) left most table data will be considered.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ex:  SELECT  mara&lt;SUB&gt;matnr  makt&lt;/SUB&gt;maktx&lt;/P&gt;&lt;P&gt;           FROM MARA&lt;/P&gt;&lt;P&gt;           OUTER JOIN  MAKT&lt;/P&gt;&lt;P&gt;            ON  mara~matnr  =  makt-matnr&lt;/P&gt;&lt;P&gt;            WHERE   mara~matnr  =  xxxxxx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  In this case, even if material description is not available, material number should be considered.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Jan 2008 04:53:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277233#M783608</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-21T04:53:53Z</dc:date>
    </item>
    <item>
      <title>Re: Difference between inner join and left outer joins?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277234#M783609</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi haritha,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i want to tell you one thing i.e., the answer of this question is same in any database i.e., SAP or sql or oracle.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now see the difference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Inner join:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We use this when we compare two colums from two different table .Based on equality or non equality, we retrieve the rows matched.&lt;/P&gt;&lt;P&gt;eg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  Select    emp.empid , order.orderid &lt;/P&gt;&lt;P&gt;from emp Innerjoin order &lt;/P&gt;&lt;P&gt;on  Emp.empid=order.empid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This example gives all the rows from emp,order tables where the empid's in both the tables are same.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Outer Join:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are three types of outer joins namely:&lt;/P&gt;&lt;P&gt;Left Outer Join---For retreiving all the columns from the first table irrespective of the column match.&lt;/P&gt;&lt;P&gt;Right Outer Join---For retreiving all the columns from the second table irrespective of the column match&lt;/P&gt;&lt;P&gt;Full Outer Join---For retreiving all the columns from both the tables irrespective of column match.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Eg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If we have two tables named stud1,stud2 with the following data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stud1:     id          Name                                                          stud2:                 id              Name&lt;/P&gt;&lt;P&gt;                1             xxx                                                                                1               aaa&lt;/P&gt;&lt;P&gt;                2             yyy                                                                                2               bbb&lt;/P&gt;&lt;P&gt;                3              zzz                                                                                4                ccc&lt;/P&gt;&lt;P&gt;                4              www                                                                                6                ddd&lt;/P&gt;&lt;P&gt;When we use Left Outer Join we get the output as:&lt;/P&gt;&lt;P&gt;1      aaa&lt;/P&gt;&lt;P&gt;2       bbb&lt;/P&gt;&lt;P&gt;3       &amp;lt;Null&amp;gt;&lt;/P&gt;&lt;P&gt;4       ccc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When we use Right Outer Join we get the output as:&lt;/P&gt;&lt;P&gt;1                aaa&lt;/P&gt;&lt;P&gt;2                bbb&lt;/P&gt;&lt;P&gt;4                ccc&lt;/P&gt;&lt;P&gt;&amp;lt;Null&amp;gt;      ddd&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When we use Full Outer Join we get the output as:&lt;/P&gt;&lt;P&gt;1              aaa&lt;/P&gt;&lt;P&gt;2              bbb&lt;/P&gt;&lt;P&gt;3              &amp;lt;Null&amp;gt;&lt;/P&gt;&lt;P&gt;4              ccc&lt;/P&gt;&lt;P&gt;&amp;lt;Null&amp;gt;     ddd&lt;/P&gt;&lt;P&gt;   &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Based on the outputs it might be easy for u to understand the concept...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Kindly reward me *&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Jan 2008 04:58:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277234#M783609</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-21T04:58:49Z</dc:date>
    </item>
    <item>
      <title>Re: Difference between inner join and left outer joins?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277235#M783610</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The join syntax represents a recursively nestable join expression. A join expression consists of a left-hand and a right- hand side, which are joined either by means of INNER JOIN or LEFT OUTER JOIN . Depending on the type of join, a join expression can be either an inner ( INNER) or an outer (LEFT OUTER) join. Every join expression can be enclosed in round brackets. If a join expression is used, the SELECT command circumvents SAP buffering. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the left-hand side, either a single database table, a view dbtab_left, or a join expression join can be specified. On the right-hand side, a single database table or a view dbtab_right as well as join conditions join_cond can be specified after ON. In this way, a maximum of 24 join expressions that join 25 database tables or views with each other can be specified after FROM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AS can be used to specify an alternative table name tabalias for each of the specified database table names or for every view. A database table or a view can occur multiple times within a join expression and, in this case, have various alternative names. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The syntax of the join conditions join_cond is the same as that of the sql_cond conditions after the addition WHERE, with the following differences: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At least one comparison must be specified after ON. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Individual comparisons may be joined using AND only. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All comparisons must contain a column in the database table or the view dbtab_right on the right-hand side as an operand. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following language elements may not be used: BETWEEN, LIKE, IN. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;No sub-queries may be used. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For outer joins, only equality comparisons (=, EQ) are possible. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If an outer join occurs after FROM, the join condition of every join expression must contain at least one comparison between columns on the left-hand and the right-hand side. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In outer joins, all comparisons that contain columns as operands in the database table or the view dbtab_right on the right-hand side must be specified in the corresponding join condition. In the WHERE condition of the same SELECT command, these columns are not allowed as operands. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Resulting set for inner join &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The inner join joins the columns of every selected line on the left- hand side with the columns of all lines on the right-hand side that jointly fulfil the join_cond condition. A line in the resulting set is created for every such line on the right-hand side. The content of the column on the left-hand side may be duplicated in this case. If none of the lines on the right-hand side fulfils the join_cond condition, no line is created in the resulting set. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Resulting set for outer join &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The outer join basically creates the same resulting set as the inner join, with the difference that at least one line is created in the resulting set for every selected line on the left-hand side, even if no line on the right-hand side fulfils the join_cond condition. The columns on the right-hand side that do not fulfil the join_cond condition are filled with null values. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Join the columns carrname, connid, fldate of the database tables scarr, spfli and sflight by means of two inner joins. A list is created of the flights from p_cityfr to p_cityto. Alternative names are used for every table. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_cityfr TYPE spfli-cityfrom, &lt;/P&gt;&lt;P&gt;p_cityto TYPE spfli-cityto. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF wa, &lt;/P&gt;&lt;P&gt;fldate TYPE sflight-fldate, &lt;/P&gt;&lt;P&gt;carrname TYPE scarr-carrname, &lt;/P&gt;&lt;P&gt;connid TYPE spfli-connid, &lt;/P&gt;&lt;P&gt;END OF wa. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA itab LIKE SORTED TABLE OF wa &lt;/P&gt;&lt;P&gt;WITH UNIQUE KEY fldate carrname connid. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT c&lt;SUB&gt;carrname p&lt;/SUB&gt;connid f~fldate &lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE itab &lt;/P&gt;&lt;P&gt;FROM ( ( scarr AS c &lt;/P&gt;&lt;P&gt;INNER JOIN spfli AS p ON p&lt;SUB&gt;carrid = c&lt;/SUB&gt;carrid &lt;/P&gt;&lt;P&gt;AND p~cityfrom = p_cityfr &lt;/P&gt;&lt;P&gt;AND p~cityto = p_cityto ) &lt;/P&gt;&lt;P&gt;INNER JOIN sflight AS f ON f&lt;SUB&gt;carrid = p&lt;/SUB&gt;carrid &lt;/P&gt;&lt;P&gt;AND f&lt;SUB&gt;connid = p&lt;/SUB&gt;connid ). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT itab INTO wa. &lt;/P&gt;&lt;P&gt;WRITE: / wa-fldate, wa-carrname, wa-connid. &lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example &lt;/P&gt;&lt;P&gt;Join the columns carrid, carrname and connid of the database tables scarr and spfli using an outer join. The column connid is set to the null value for all flights that do not fly from p_cityfr. This null value is then converted to the appropriate initial value when it is transferred to the assigned data object. The LOOP returns all airlines that do not fly from p_cityfr. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS p_cityfr TYPE spfli-cityfrom. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF wa, &lt;/P&gt;&lt;P&gt;carrid TYPE scarr-carrid, &lt;/P&gt;&lt;P&gt;carrname TYPE scarr-carrname, &lt;/P&gt;&lt;P&gt;connid TYPE spfli-connid, &lt;/P&gt;&lt;P&gt;END OF wa, &lt;/P&gt;&lt;P&gt;itab LIKE SORTED TABLE OF wa &lt;/P&gt;&lt;P&gt;WITH NON-UNIQUE KEY carrid. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT s&lt;SUB&gt;carrid s&lt;/SUB&gt;carrname p~connid &lt;/P&gt;&lt;P&gt;INTO CORRESPONDING FIELDS OF TABLE itab &lt;/P&gt;&lt;P&gt;FROM scarr AS s &lt;/P&gt;&lt;P&gt;LEFT OUTER JOIN spfli AS p ON s&lt;SUB&gt;carrid = p&lt;/SUB&gt;carrid &lt;/P&gt;&lt;P&gt;AND p~cityfrom = p_cityfr. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT itab INTO wa. &lt;/P&gt;&lt;P&gt;IF wa-connid = '0000'. &lt;/P&gt;&lt;P&gt;WRITE: / wa-carrid, wa-carrname. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;we r using 2 type of joins in abap they are&lt;/P&gt;&lt;P&gt;1) inner join.&lt;/P&gt;&lt;P&gt;this will join 2 tables using an common fiend and return the result with field values wich are common in both the tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;itab1 itab2&lt;/P&gt;&lt;P&gt;a b c a d &lt;/P&gt;&lt;P&gt;1 2 3 1 5 &lt;/P&gt;&lt;P&gt;2 3 4 3 6&lt;/P&gt;&lt;P&gt;after innerjoining itab1 n itab2 on field a we wil get the o/p as &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a b c d &lt;/P&gt;&lt;P&gt;1 2 3 5&lt;/P&gt;&lt;P&gt;only common field is taken..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2)left outer join&lt;/P&gt;&lt;P&gt;here it wil work in opossite way it will give values whic are not common&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;itab1 itab2&lt;/P&gt;&lt;P&gt;a b c a d &lt;/P&gt;&lt;P&gt;1 2 3 1 5 &lt;/P&gt;&lt;P&gt;2 3 4 3 6&lt;/P&gt;&lt;P&gt;after left outer joining itab1 n itab2 on field a we wil get the o/p as &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;a b c d &lt;/P&gt;&lt;P&gt;2 3 4 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;only fields which are not common is taken from the left table..other field(d here) wil be empty&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think it will help u.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward Points if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check for ALVROBOT.COM also it is also helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Jan 2008 05:02:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277235#M783610</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-21T05:02:29Z</dc:date>
    </item>
    <item>
      <title>Re: Difference between inner join and left outer joins?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277236#M783611</link>
      <description>&lt;P&gt; Simple and straight forward. &lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Fri, 22 Jan 2021 05:40:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/difference-between-inner-join-and-left-outer-joins/m-p/3277236#M783611</guid>
      <dc:creator>sallyxu-cn</dc:creator>
      <dc:date>2021-01-22T05:40:05Z</dc:date>
    </item>
  </channel>
</rss>

