List:General Discussion« Previous MessageNext Message »
From:Edward Ritter Date:July 20 2004 5:08pm
Subject:Re: newbie join issue
View as plain text  
Thanks, I'll take a look at that. The id isn't unique, so that's why I 
added the idx column.

Does my query look okay beyond that? I'll add the additional indexes and 
try again.

Ed

Garth Webb said the following on 7/20/2004 1:03 PM:

> What is the 'idx' for when you already have an 'id' column?  Also, you
> need an index on the column that you are joining on;  having a single
> indexed column on a table doesn't automatically improve all queries
> against that table.  Put an index on the 'email_address' fields of both
> tables.  You'll need:
> 
>     ALTER TABLE la_entire
>     ADD INDEX idx_email_address (email_address);
> 
>     ALTER TABLE la_final
>     ADD INDEX idx_email_address (email_address);
> 
> See:
> http://dev.mysql.com/doc/mysql/en/ALTER_TABLE.html
> 
> On Tue, 2004-07-20 at 09:22, Edward Ritter wrote:
> 
>>Stefan:
>>   I added an index column to each after I imported. Here's a listing of 
>>the two tables.
>>
>>la_entire
>>+----------------+-------------+------+-----+---------+----------------+
>>| Field          | Type        | Null | Key | Default | Extra          |
>>+----------------+-------------+------+-----+---------+----------------+
>>| id1            | int(3)      |      |     | 0       |                |
>>| id2            | varchar(6)  |      |     |         |                |
>>| first_name     | varchar(30) |      |     |         |                |
>>| last_name      | varchar(30) |      |     |         |                |
>>| street_address | varchar(50) |      |     |         |                |
>>| city           | varchar(30) |      |     |         |                |
>>| state          | char(2)     |      |     |         |                |
>>| zip            | varchar(9)  |      |     |         |                |
>>| email_address  | varchar(50) |      |     |         |                |
>>| idx            | int(7)      |      | PRI | NULL    | auto_increment |
>>+----------------+-------------+------+-----+---------+----------------+
>>10 rows in set (0.00 sec)
>>
>>+----------------+-------------+------+-----+---------+----------------+
>>| Field          | Type        | Null | Key | Default | Extra          |
>>+----------------+-------------+------+-----+---------+----------------+
>>| id             | int(5)      |      |     | 0       |                |
>>| county         | int(5)      |      |     | 0       |                |
>>| precinct       | int(5)      |      |     | 0       |                |
>>| last_name      | varchar(30) |      |     |         |                |
>>| first_name     | varchar(30) |      |     |         |                |
>>| src_address    | varchar(30) |      |     |         |                |
>>| src_city       | varchar(30) |      |     |         |                |
>>| src_state      | varchar(20) |      |     |         |                |
>>| src_zip        | int(5)      |      |     | 0       |                |
>>| email_address  | varchar(30) |      |     |         |                |
>>| new_city       | varchar(30) |      |     |         |                |
>>| new_state      | varchar(20) |      |     |         |                |
>>| new_zip        | int(5)      |      |     | 0       |                |
>>| new_zip4       | int(4)      |      |     | 0       |                |
>>| new_address    | varchar(30) |      |     |         |                |
>>| dma_flag       | varchar(4)  |      |     |         |                |
>>| deceased       | varchar(4)  |      |     |         |                |
>>| phone          | int(12)     |      |     | 0       |                |
>>| time_zone      | varchar(4)  |      |     |         |                |
>>| phone_sol      | varchar(4)  |      |     |         |                |
>>| cluster        | varchar(4)  |      |     |         |                |
>>| age            | varchar(4)  |      |     |         |                |
>>| income         | varchar(4)  |      |     |         |                |
>>| pres_child     | varchar(4)  |      |     |         |                |
>>| own_rent       | varchar(4)  |      |     |         |                |
>>| length_of_res  | varchar(4)  |      |     |         |                |
>>| buyer          | varchar(4)  |      |     |         |                |
>>| responder      | varchar(4)  |      |     |         |                |
>>| gender         | varchar(4)  |      |     |         |                |
>>| occupation     | varchar(4)  |      |     |         |                |
>>| education      | varchar(4)  |      |     |         |                |
>>| donor_prospect | varchar(4)  |      |     |         |                |
>>| scr1ast1       | varchar(4)  |      |     |         |                |
>>| scr1bst1       | varchar(4)  |      |     |         |                |
>>| scr2ast1       | varchar(4)  |      |     |         |                |
>>| scr2bst1       | varchar(4)  |      |     |         |                |
>>| decile1        | varchar(4)  |      |     |         |                |
>>| decile2        | varchar(4)  |      |     |         |                |
>>| decile3        | varchar(4)  |      |     |         |                |
>>| decile4        | varchar(4)  |      |     |         |                |
>>| scr1ast2       | varchar(4)  |      |     |         |                |
>>| scr1bst2       | varchar(4)  |      |     |         |                |
>>| decile5        | varchar(4)  |      |     |         |                |
>>| decile6        | varchar(4)  |      |     |         |                |
>>| dob            | varchar(12) |      |     |         |                |
>>| party          | varchar(4)  |      |     |         |                |
>>| idx            | int(7)      |      | PRI | NULL    | auto_increment |
>>+----------------+-------------+------+-----+---------+----------------+
>>47 rows in set (0.00 sec)
>>
>>
>>My latest attempt at a query is this:
>>
>>select la_entire.* from la_entire left join la_final on 
>>la_entire.email_address = la_final.email_address where 
>>la_final.email_address is null;
>>
>>Any help?
>>
>>Ed
>>
>>Stefan Kuhn said the following on 7/20/2004 12:05 PM:
>>
>>>I would expect that the speed problems are due to missing indices. Did you do
> 
>>>proper indexing? If unsure, post your table structures and query.
>>>Stefan
>>>
>>>Am Tuesday 20 July 2004 17:45 schrieb Edward Ritter:
>>>
>>>
>>>>I've got a task that's gonna require me to compare one table to another
>>>>and remove the rows from the first table that are found in the second
>>>>table that match email_address.
>>>>
>>>>I'm running 4.0.20a-nt-log. The first table has 10 colomns and about 50K
>>>>records, and the second table has 46 columns and has about 16K records.
>>>>
>>>>I've attempted a number of selects that just sat and hung the computer.
>>>>I know I must be doing something wrong. I figure I'll need to do a left
>>>>join on it, but I've not had much experience with joins as such and I
>>>>need a little assistance.
>>>>
>>>>Can anyone help me work this out? If you need more info, let me know.
>>>>
>>>>Ed
>>>
>>>
> 
Thread
newbie join issueEdward Ritter20 Jul
  • Re: newbie join issueStefan Kuhn20 Jul
    • Re: newbie join issueEdward Ritter20 Jul
      • Re: newbie join issueGarth Webb20 Jul
        • Re: newbie join issueEdward Ritter20 Jul
          • Re: newbie join issueEdward Ritter20 Jul