>Greetings.
>
>I have two tables that are identical in structure, but each contains 
>data for different years.
>
>Here is the desc of the first table:
>
>mysql> desc counts2000;
>+-------------+-----------------------------+------+-----+---------+-------+
>| Field       | Type                        | Null | Key | Default | Extra |
>+-------------+-----------------------------+------+-----+---------+-------+
>| version     | decimal(6,3)                | YES  |     | NULL    |       |
>| sequence    | tinyint(4)                  | YES  |     | NULL    |       |
>| dt_year     | bigint(4)                   | YES  |     | NULL    |       |
>| dt_month    | bigint(2)                   | YES  |     | NULL    |       |
>| dt_mon_name | varchar(10) binary          | YES  |     | NULL    |       |
>| dt_day      | bigint(2) unsigned zerofill | YES  |     | NULL    |       |
>| date_taken  | date                        | YES  |     | NULL    |       |
>| exams       | bigint(21)                  |      |     | 0       |       |
>| dt_label    | varchar(6)                  | YES  |     | NULL    |       |
>+-------------+-----------------------------+------+-----+---------+-------+
>9 rows in set (0.03 sec)
>
>The desc for the other is included at the end of the message.  This 
>first one has data for Jan/2000 - Jun/2000.  The second has data for 
>Jan/2001 - Apr/2001.
>
>I want to combine the two tables into one new one.  Since they have 
>a differing number of rows, but I want all of the rows from 
>counts2000, I thought to use a JOIN.  Here is the code I am trying 
>to use:
>
>-------- code starts here ----------
>
>DROP TABLE IF EXISTS counts;
>
>CREATE TABLE counts SELECT
>         AL1.sequence,
>         AL1.dt_month,
>         AL1.dt_day,
>         AL1.dt_label,
>         SUM(AL1.exams) AS y2000,
>         SUM(AL2.exams) AS y2001
>FROM
>         counts2000 AL1
>LEFT JOIN
>         counts2001 AL2
>USING
>         (sequence,dt_label)
>WHERE
>         AL1.version >= '2'              AND
>         AL2.version >= '2'
>GROUP BY
>         AL1.sequence,
>         AL1.dt_label
>ORDER BY
>         AL1.sequence,
>         AL1.dt_month,
>         AL1.dt_day;
>ALTER TABLE counts ADD INDEX sequence (sequence);
>ALTER TABLE counts ADD INDEX dt_month (dt_month);
>ALTER TABLE counts ADD INDEX dt_day (dt_day);
>
>-------- code ends here ----------
>
>Seems like it should work.  It does run, but the goal behind using 
>the JOIN (to get all of the rows in counts2000) is not being met.  I 
>only gets rows from both tables where the row exists in both tables.
>
>I am running MySQL 3.23.34 (for Windows) on Windows 2000 Professional.
>
>
>Here is some of the data from counts2000 that is not showing up in 
>the resultant table:
>
>2.000   1       2000    5       May     01      2000-05-01      154     01-May
>2.000   1       2000    5       May     02      2000-05-02      283     02-May
>2.000   1       2000    5       May     03      2000-05-03      373     03-May
>2.000   1       2000    5       May     04      2000-05-04      298     04-May
>2.000   1       2000    5       May     05      2000-05-05      160     05-May
>2.000   1       2000    5       May     06      2000-05-06      117     06-May
>2.000   1       2000    5       May     07      2000-05-07      44      07-May
>2.000   1       2000    5       May     08      2000-05-08      308     08-May
>2.000   1       2000    5       May     09      2000-05-09      408     09-May
>
>Any ideas why the JOIN does not seem to be working?
>
>Thanks,
>Dan
>
>
>
>
>-------- SUPPORTING DOCS ---------------
>
>mysql> desc counts2001;
>+-------------+-----------------------------+------+-----+---------+-------+
>| Field       | Type                        | Null | Key | Default | Extra |
>+-------------+-----------------------------+------+-----+---------+-------+
>| version     | decimal(6,3)                | YES  |     | NULL    |       |
>| sequence    | tinyint(4)                  | YES  |     | NULL    |       |
>| dt_year     | bigint(4)                   | YES  |     | NULL    |       |
>| dt_month    | bigint(2)                   | YES  |     | NULL    |       |
>| dt_mon_name | varchar(10) binary          | YES  |     | NULL    |       |
>| dt_day      | bigint(2) unsigned zerofill | YES  |     | NULL    |       |
>| date_taken  | date                        | YES  |     | NULL    |       |
>| exams       | bigint(21)                  |      |     | 0       |       |
>| dt_label    | varchar(6)                  | YES  |     | NULL    |       |
>+-------------+-----------------------------+------+-----+---------+-------+
>9 rows in set (0.03 sec)
>
>Dan Huston

Sir, the join is working fine. That's the way it's supposed to work. 
If the two tables have identical structure, then use a MERGE table to 
combine them, and select from the MERGE table.

Bob Hall

Know thyself? Absurd direction!
Bubbles bear no introspection.     -Khushhal Khan Khatak
MySQL list magic words: sql query database

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to