Mysql Nested Subqueries Problem » History » Version 5
Amber Herold, 03/04/2010 01:42 PM
1 | 1 | Amber Herold | h1. Mysql Nested Subqueries Problem |
---|---|---|---|
2 | |||
3 | 3 | Amber Herold | This is the query that I wanted to do because it is easy to understand (= easier to maintain). |
4 | Unfortunatly there is a bug in mysql (http://bugs.mysql.com/bug.php?id=10312) which makes this |
||
5 | so slow that no one has seen it complete. The subsequent query is a bit more difficult to follow |
||
6 | but gets around this problem. |
||
7 | 1 | Amber Herold | |
8 | 4 | Amber Herold | <pre> |
9 | 5 | Amber Herold | SELECT DB_PROJECT.projectexperiments.projectId |
10 | FROM DB_PROJECT.projectexperiments |
||
11 | WHERE DB_PROJECT.projectexperiments.name IN |
||
12 | 3 | Amber Herold | ( |
13 | 5 | Amber Herold | SELECT DB_LEGINON.SessionData.name |
14 | FROM DB_LEGINON.SessionData |
||
15 | WHERE DB_LEGINON.SessionData.`DEF_id` IN |
||
16 | 3 | Amber Herold | ( |
17 | 5 | Amber Herold | SELECT DB_PROJECT.shareexperiments.`REF|leginondata|SessionData|experiment` |
18 | FROM DB_PROJECT.shareexperiments |
||
19 | WHERE DB_PROJECT.shareexperiments.`REF|leginondata|UserData|user` = ".$userId." |
||
20 | 3 | Amber Herold | ) |
21 | ); |
||
22 | 4 | Amber Herold | </pre> |
23 | 1 | Amber Herold | |
24 | 4 | Amber Herold | <pre> |
25 | 5 | Amber Herold | SELECT DB_PROJECT.projectexperiments.projectId |
26 | FROM DB_PROJECT.projectexperiments |
||
27 | 3 | Amber Herold | INNER JOIN |
28 | ( |
||
29 | 5 | Amber Herold | SELECT DB_LEGINON.SessionData.name AS SessionName |
30 | FROM DB_LEGINON.SessionData |
||
31 | 3 | Amber Herold | INNER JOIN |
32 | ( |
||
33 | 5 | Amber Herold | SELECT DB_PROJECT.shareexperiments.`REF|leginondata|SessionData|experiment` AS SessionId |
34 | FROM DB_PROJECT.shareexperiments |
||
35 | WHERE DB_PROJECT.shareexperiments.`REF|leginondata|UserData|user` = ".$userId." |
||
36 | 3 | Amber Herold | ) AS SessionIds |
37 | 5 | Amber Herold | ON DB_LEGINON.SessionData.`DEF_id` = SessionIds.SessionId |
38 | 1 | Amber Herold | ) AS SessionNames |
39 | 5 | Amber Herold | ON DB_PROJECT.projectexperiments.name = SessionNames.SessionName; |
40 | 4 | Amber Herold | </pre> |
41 | 1 | Amber Herold | |
42 | |||
43 | 2 | Amber Herold | See another example "here":http://forums.mysql.com/read.php?24,54721,54721#msg-54721. |