hey shawn!!!

got your msg about helping speed up the mysql!!! thanks. i got to thinking
that if the sql/interactions where the issue, why not rewrite the app to
reduce the number of round trips to hit the db for a given page to be
displayed..

the following sql statements are used to produce the two tables:

tbl  t1:
+-----+------+-------+------+-----+
| ID  | type | user  | ID   | uID |
+-----+------+-------+------+-----+
|  40 |    1 | admin |  157 |  40 |
| 102 |    1 | admin |  405 | 102 |
| 257 |    1 | admin | 1025 | 257 |
| 267 |    1 | admin | 1065 | 267 |
| 379 |    1 | admin | 1513 | 379 |
+-----+------+-------+------+-----+
5 rows in set (0.00 sec)


tbl t2:
+------+------+--------+
| ID   | type | status |
+------+------+--------+
|   40 |    1 |      0 |
|   40 |    2 |      0 |
|   40 |    3 |      0 |
|   40 |    4 |      0 |
|  102 |    1 |      0 |
|  102 |    2 |      0 |
|  102 |    3 |      0 |
|  102 |    4 |      0 |
|  257 |    1 |      0 |
|  257 |    2 |      0 |
|  257 |    3 |      0 |
|  257 |    4 |      0 |
|  267 |    1 |      0 |
|  267 |    2 |      0 |
|  267 |    3 |      0 |
|  267 |    4 |      0 |
|  379 |    1 |      0 |
|  379 |    2 |      0 |
|  379 |    3 |      0 |
|  379 |    4 |      0 |
|  394 |    1 |      0 |
|  394 |    2 |      0 |
|  394 |    3 |      0 |
|  394 |    4 |      0 |
|  460 |    1 |      0 |
|  460 |    2 |      0 |
|  460 |    3 |      0 |
|  460 |    4 |      0 |
|  541 |    1 |      0 |
|  541 |    2 |      0 |
|  541 |    3 |      0 |
|  541 |    4 |      0 |


i'd like to be able to merge/combine the two tables so that i get
+------+------+--------+------+-------+-----+
| ID   | type | status | user | ID    | uID |
+------+------+--------+------+-------+-----+
|   40 |    1 |      0 |
|   40 |    2 |      0 |          .
|   40 |    3 |      0 |          .
|   40 |    4 |      0 |
|  102 |    1 |      0 |
|  102 |    2 |      0 |
|  102 |    3 |      0 |
|  102 |    4 |      0 |



sql
t1:
select
u2.universityID as ID,
u2.urltype as type,
u4.username as user,
u3.itemID as ID2,
u1.ID as uID
from universityTBL as u1
join university_urlTBL as u2
on u2.universityID = u1.ID
join parsefileTBL as p1
on p1.university_urlID = u2.ID
join user_rolesTBL as u3
on u3.itemID = u2.ID
join users as u4
on u3.userID = u4.user_id
where u2.urltype = u3.itemType
and (u2.urltype = '1' or u2.urltype='3')
and u3.process = '20'
and (u1.ID='40' or u1.ID='102' or u1.ID='257' or u1.ID='267'
or u1.ID='379' or u1.ID='394');

t2:
select u1.universityID as ID, u1.urltype as type, p1.start_status as status
from university_urlTBL as u1 right join parsefileTBL as p1 on u1.ID =
p1.university_urlID join latestParseStatusTBL as l1 on p1.fileID = l1.itemID
where u1.universityID='40' or u1.universityID='102' or u1.universityID='257'
or u1.universityID='267' or u1.universityID='379' or u1.universityID='394'
or u1.universityID='460' or u1.universityID='541' or
u1.universityID='560'....


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, September 29, 2004 6:42 AM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Re: merging of two tables using temp tables???



If you post your two "original" SQL statements (the ones you use to build
your example tables) I think I can help you to merge your results, possibly
without the need for temporary tables. Also, what version of MySQL are you
using?

Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine


"bruce" <[EMAIL PROTECTED]> wrote on 09/29/2004 12:57:34 AM:

> hi....
>
> i have a situation where i create the following tables via two different
> select sql statements.
>
> +-----+------+-------+------+-----+
> | ID  | type | user  | ID   | uID |
> +-----+------+-------+------+-----+
> |  40 |    1 | admin |  157 |  40 |
> | 102 |    1 | admin |  405 | 102 |
> | 257 |    1 | admin | 1025 | 257 |
> | 267 |    1 | admin | 1065 | 267 |
> | 379 |    1 | admin | 1513 | 379 |
> +-----+------+-------+------+-----+
> 5 rows in set (0.00 sec)
>
> +------+------+--------+
> | ID   | type | status |
> +------+------+--------+
> |   40 |    1 |      0 |
> |   40 |    2 |      0 |
> |   40 |    3 |      0 |
> |   40 |    4 |      0 |
> |  102 |    1 |      0 |
> |  102 |    2 |      0 |
> |  102 |    3 |      0 |
> |  102 |    4 |      0 |
> |  257 |    1 |      0 |
> |  257 |    2 |      0 |
> |  257 |    3 |      0 |
> |  257 |    4 |      0 |
> |  267 |    1 |      0 |
> |  267 |    2 |      0 |
> |  267 |    3 |      0 |
> |  267 |    4 |      0 |
> |  379 |    1 |      0 |
> |  379 |    2 |      0 |
> |  379 |    3 |      0 |
> |  379 |    4 |      0 |
> |  394 |    1 |      0 |
> |  394 |    2 |      0 |
> |  394 |    3 |      0 |
> |  394 |    4 |      0 |
> |  460 |    1 |      0 |
> |  460 |    2 |      0 |
> |  460 |    3 |      0 |
> |  460 |    4 |      0 |
> |  541 |    1 |      0 |
> |  541 |    2 |      0 |
> |  541 |    3 |      0 |
> |  541 |    4 |      0 |
>
>
> i'd like to be able to merge/combine the two tables so that i get
> +------+------+--------+------+-------+-----+
> | ID   | type | status | user | ID    | uID |
> +------+------+--------+------+-------+-----+
> |   40 |    1 |      0 |
> |   40 |    2 |      0 |          .
> |   40 |    3 |      0 |          .
> |   40 |    4 |      0 |
> |  102 |    1 |      0 |
> |  102 |    2 |      0 |
> |  102 |    3 |      0 |
> |  102 |    4 |      0 |
>
> with the appropriate information in the various columns/rows...
>
> i'm looking to be able to fill the resulting table with the information if
> it's present, or to have nulls/'0' where the information isn't
available...
>
> i'd prefer to do this in mysql if possible, as my gut tells me the
operation
> would be faster/more efficient in mysql, than if i coded this in
php/perl...
>
> i believe that i's need to create a temp table based on each select, and
> then some how merge the two temp tables, and finally do a select on the
> resulting table to get the values i need...
>
> looking through google/mysql hasn't shed any light on this one...
>
> any ideas/thoughts/comments on how i can do this.....
>
> thanks...
>
> -bruce
>
>
> ps...
>
> the actual select sql used to create the 2 tbls are listed:
> select
> u4.username as user,
> u3.itemID as ID,
> u1.ID as uID
> from universityTBL as u1
> left join university_urlTBL as u2
> on u2.universityID = u1.ID
> right join parsefileTBL as p1
> on p1.university_urlID = u2.ID
> left join user_rolesTBL as u3
> on u3.itemID = u2.ID
> left join users as u4
> on u3.userID = u4.user_id
> where u2.urltype = u3.itemType
> and u2.urltype = '1'
> and u3.process = '20'
> and (u1.ID='40' or u1.ID='102' or u1.ID='257' or u1.ID='267'
> or u1.ID='379' or u1.ID='394');
>
> select u1.universityID as ID, u1.urltype as type, p1.start_status as
status
> from university_urlTBL as u1 right join parsefileTBL as p1 on u1.ID =
> p1.university_urlID join latestParseStatusTBL as l1 on p1.fileID =
l1.itemID
> where u1.universityID='40' or u1.universityID='102' or
u1.universityID='257'
> or u1.universityID='267' or u1.universityID='379' or u1.universityID='394'
> or u1.universityID='460' or u1.universityID='541' or u1.universityID='560'
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
>


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to