|
| php/mysql Fra : TT |
Dato : 10-03-05 20:05 |
|
Nu synes jeg lige, at jeg fået lidt fod på mysql, men når jeg sender
følgende forespørgsel, som - indrømmet - er en ordentlig bamse:
$result = mysql_query("SELECT akam.nr, akam.karak AS akamk, dcrp.nr,
dcrp.karak AS dcrpk, digimag.nr, digimag.karak AS digimagk, digit.nr,
digit.karak AS digitk, dpr.nr, dpr.karak AS dprk, ir.nr, ir.karak AS
irk, sd.nr, sd.karak AS sdk, zdn.nr, zdn.karak AS zdnk, canon.nr, model,
canon.date
FROM canon
LEFT JOIN akam ON ( canon.nr = akam.nr )
LEFT JOIN dcrp ON ( canon.nr = dcrp.nr )
LEFT JOIN digimag ON ( canon.nr = digimag.nr )
LEFT JOIN digit ON ( canon.nr = digit.nr )
LEFT JOIN dpr ON ( canon.nr = dpr.nr )
LEFT JOIN ir ON ( canon.nr = ir.nr )
LEFT JOIN sd ON ( canon.nr = sd.nr )
LEFT JOIN zdn ON ( canon.nr = zdn.nr )
ORDER BY canon.date") or die (mysql_error());
så får jeg følgende fejlmelding:
"The SELECT would examine more rows than MAX_JOIN_SIZE. Check your WHERE
and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT
is ok"
Mit spørgsmål er så, hvor i min forespørgsel jeg skal tilføje f.ex. "SET
SQL_BIG_SELECTS=1", der får det hele til at virke, når jeg skriver det
direkte i phpMyAdmin?
Håber I kan hjælpe mig!
TT
| |
Jens Koldbæk (11-03-2005)
| Kommentar Fra : Jens Koldbæk |
Dato : 11-03-05 16:08 |
|
Du skal ikke skrive det i din forspørgsel. Du skal blot køre
kommandoen
SET SQL_BIG_SELECTS=1
inden du kører din forespørgsel (men på samme måde som du kører en
forespørgsel).
Så bliver Session-parameteren SQL_BIG_SELECTS sat til 1, og dermed
er du i stand til at foretage en større join.
Mvh
Jens
TT <tfg@tomsfotoguide.dk> skrev:
>Nu synes jeg lige, at jeg fået lidt
>fod på mysql, men når jeg sender
>følgende forespørgsel, som -
>indrømmet - er en ordentlig bamse:
>
>$result = mysql_query("SELECT
>akam.nr, akam.karak AS akamk, dcrp.nr,
>dcrp.karak AS dcrpk, digimag.nr,
>digimag.karak AS digimagk, digit.nr,
>digit.karak AS digitk, dpr.nr,
>dpr.karak AS dprk, ir.nr, ir.karak AS
>irk, sd.nr, sd.karak AS sdk, zdn.nr,
>zdn.karak AS zdnk, canon.nr, model,
>canon.date
>FROM canon
>LEFT JOIN akam ON ( canon.nr = akam.nr )
>LEFT JOIN dcrp ON ( canon.nr = dcrp.nr )
>LEFT JOIN digimag ON ( canon.nr = digimag.nr )
>LEFT JOIN digit ON ( canon.nr = digit.nr )
>LEFT JOIN dpr ON ( canon.nr = dpr.nr )
>LEFT JOIN ir ON ( canon.nr = ir.nr )
>LEFT JOIN sd ON ( canon.nr = sd.nr )
>LEFT JOIN zdn ON ( canon.nr = zdn.nr )
>ORDER BY canon.date") or die
>(mysql_error());
>
>
>så får jeg følgende fejlmelding:
>
>"The SELECT would examine more rows
>than MAX_JOIN_SIZE. Check your WHERE
>and use SET SQL_BIG_SELECTS=1 or SET
>SQL_MAX_JOIN_SIZE=# if the SELECT
>is ok"
>
>Mit spørgsmål er så, hvor i min
>forespørgsel jeg skal tilføje f.ex. "SET
>SQL_BIG_SELECTS=1", der får det hele
>til at virke, når jeg skriver det
>direkte i phpMyAdmin?
>
>Håber I kan hjælpe mig!
>
>TT
| |
TT (11-03-2005)
| Kommentar Fra : TT |
Dato : 11-03-05 18:17 |
|
Jens Koldbæk (slet M9I3D) wrote:
> Du skal ikke skrive det i din forspørgsel. Du skal blot køre
> kommandoen
>
> SET SQL_BIG_SELECTS=1
>
> inden du kører din forespørgsel (men på samme måde som du kører en
> forespørgsel).
Tak for dit svar!
Desværre er jeg helt ny i mysql, så jeg kan ikke finde den rigtige måde
at skrive det på :(
Kan du gi mig et forslag?
Venlig hilsen
TT
| |
TT (11-03-2005)
| Kommentar Fra : TT |
Dato : 11-03-05 18:21 |
|
Jens Koldbæk (slet M9I3D) wrote:
> Du skal ikke skrive det i din forspørgsel. Du skal blot køre
> kommandoen
>
> SET SQL_BIG_SELECTS=1
>
> inden du kører din forespørgsel (men på samme måde som du kører en
> forespørgsel).
Hov, nu lykkedes det!!!!:D
Tak for hjælpen!
TT
| |
|
|