Results 1 to 4 of 4

Thread: Mysql Cross Join help.

  1. #1
    Join Date
    Aug 2009
    Posts
    6

    Mysql Cross Join help.

    Hi,

    I am learning MySQL.
    I am stuck with the Join statements specially with Cross Joins.
    Can some one help me with the working of this Cross Join (Cartesian Product Join).

    Thanks in advance.
    superbK

  2. #2
    Join Date
    May 2008
    Posts
    32

    Re: Mysql Cross Join help.

    Beginning with Joins

    Basically it is the combining of two rows based on the comparative values in selected columns. This 'super-row' exists only for the duration of the query that creates it.

    Cross-Join

    Syntax:

    Code:
    SELECT <column_name> 
    FROM <table1>, <table2>
    A cross-join between two tables takes the data from each row in table1 and joins it to the data from each row in table2.

  3. #3
    Join Date
    May 2008
    Posts
    33

    Re: Mysql Cross Join help.

    Mysql Cross Join

    Cross Join is also called Cartesian Product Join. The Cross Join in SQL return you a result table in which each row from the first table is combined with each rows from the second table. In other words, you can say it is the cross multiplication of number of rows in each table. The Syntax used to represent Cross Join in Mysql :

    Code:
    select * from table1 cross join table 2;
    Example

  4. #4
    Join Date
    May 2008
    Posts
    41

    Re: Mysql Cross Join help.

    Have a look at this example:

    Code:
    /*
    
    mysql> SELECT ArticleTitle, AuthID FROM Articles CROSS JOIN AuthorArticle;
    +-------------------+--------+
    | ArticleTitle      | AuthID |
    +-------------------+--------+
    | How write a paper |   1006 |
    | Publish a paper   |   1006 |
    | Sell a paper      |   1006 |
    | Buy a paper       |   1006 |
    | Conferences       |   1006 |
    | Journal           |   1006 |
    | Information       |   1006 |
    | AI                |   1006 |
    | How write a paper |   1008 |
    | Publish a paper   |   1008 |
    | Sell a paper      |   1008 |
    | Buy a paper       |   1008 |
    | Conferences       |   1008 |
    | Journal           |   1008 |
    | Information       |   1008 |
    | AI                |   1008 |
    | How write a paper |   1009 |
    | Publish a paper   |   1009 |
    | Sell a paper      |   1009 |
    | Buy a paper       |   1009 |
    | Conferences       |   1009 |
    | Journal           |   1009 |
    | Information       |   1009 |
    | AI                |   1009 |
    | How write a paper |   1010 |
    | Publish a paper   |   1010 |
    | Sell a paper      |   1010 |
    | Buy a paper       |   1010 |
    | Conferences       |   1010 |
    | Journal           |   1010 |
    | Information       |   1010 |
    | AI                |   1010 |
    | How write a paper |   1011 |
    | Publish a paper   |   1011 |
    | Sell a paper      |   1011 |
    | Buy a paper       |   1011 |
    | Conferences       |   1011 |
    | Journal           |   1011 |
    | Information       |   1011 |
    | AI                |   1011 |
    | How write a paper |   1012 |
    | Publish a paper   |   1012 |
    | Sell a paper      |   1012 |
    | Buy a paper       |   1012 |
    | Conferences       |   1012 |
    | Journal           |   1012 |
    | Information       |   1012 |
    | AI                |   1012 |
    | How write a paper |   1012 |
    | Publish a paper   |   1012 |
    | Sell a paper      |   1012 |
    | Buy a paper       |   1012 |
    | Conferences       |   1012 |
    | Journal           |   1012 |
    | Information       |   1012 |
    | AI                |   1012 |
    | How write a paper |   1014 |
    | Publish a paper   |   1014 |
    | Sell a paper      |   1014 |
    | Buy a paper       |   1014 |
    | Conferences       |   1014 |
    | Journal           |   1014 |
    | Information       |   1014 |
    | AI                |   1014 |
    +-------------------+--------+
    64 rows in set (0.01 sec)
    
    
    */
    
    Drop table Articles;
    Drop table Authors;
    Drop table AuthorArticle;
    
    
    
    CREATE TABLE Articles (
       ArticleID SMALLINT NOT NULL PRIMARY KEY,
       ArticleTitle VARCHAR(60) NOT NULL,
       Copyright YEAR NOT NULL
    )
    ENGINE=INNODB;
    
    
    INSERT INTO Articles VALUES (12786, 'How write a paper', 1934),
                                (13331, 'Publish a paper', 1919),
                                (14356, 'Sell a paper', 1966),
                                (15729, 'Buy a paper', 1932),
                                (16284, 'Conferences', 1996),
                                (17695, 'Journal', 1980),
                                (19264, 'Information', 1992),
                                (19354, 'AI', 1993);
    
    
    CREATE TABLE Authors (
       AuthID SMALLINT NOT NULL PRIMARY KEY,
       AuthorFirstName VARCHAR(20),
       AuthorMiddleName VARCHAR(20),
       AuthorLastName VARCHAR(20)
    )
    ENGINE=INNODB;
    
    
    INSERT INTO Authors VALUES (1006, 'Henry', 'S.', 'Thompson'),
                               (1007, 'Jason', 'Carol', 'Oak'),
                               (1008, 'James', NULL, 'Elk'),
                               (1009, 'Tom', 'M', 'Ride'),
                               (1010, 'Jack', 'K', 'Ken'),
                               (1011, 'Mary', 'G.', 'Lee'),
                               (1012, 'Annie', NULL, 'Peng'),
                               (1013, 'Alan', NULL, 'Wang'),
                               (1014, 'Nelson', NULL, 'Yin');
    
    
    CREATE TABLE AuthorArticle (
       AuthID SMALLINT NOT NULL,
       ArticleID SMALLINT NOT NULL,
       PRIMARY KEY (AuthID, ArticleID),
       FOREIGN KEY (AuthID) REFERENCES Authors (AuthID),
       FOREIGN KEY (ArticleID) REFERENCES Articles (ArticleID)
    )
    ENGINE=INNODB;
    
    
    INSERT INTO AuthorArticle VALUES (1006, 14356), 
                                  (1008, 15729), 
                                  (1009, 12786), 
                                  (1010, 17695),
                                  (1011, 15729), 
                                  (1012, 19264), 
                                  (1012, 19354), 
                                  (1014, 16284);
      
    SELECT ArticleTitle, AuthID FROM Articles CROSS JOIN AuthorArticle;
    source:

Similar Threads

  1. Replies: 3
    Last Post: 02-06-2012, 12:44 PM
  2. 6950 Cross Fire vs 6870 Cross Fire
    By Rainer in forum Monitor & Video Cards
    Replies: 4
    Last Post: 18-03-2011, 07:08 AM
  3. How to use JOIN statement in MySQL
    By Atsushi in forum Software Development
    Replies: 4
    Last Post: 30-12-2010, 06:31 AM
  4. Replies: 3
    Last Post: 07-11-2009, 09:36 PM
  5. Equi Join vs Natural Join in SQL
    By Demetrius in forum Software Development
    Replies: 3
    Last Post: 14-05-2009, 12:55 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Page generated in 1,750,210,554.83311 seconds with 16 queries