Avatar billede Slettet bruger
04. maj 2000 - 18:39 Der er 10 kommentarer og
1 løsning

Endnu en HASTER !

Jeg har bøvl med et select query, jeg ved hvad det skal kunne, men jeg kan ikke finde syntaxen. Lad mig prøve at forklare. Det her ville umiddelbart være mit bud (som er helt forkert) :

SELECT pid from products WHERE (
price='$price' AND something<'$some' )
AND (users.pid!=products.pid WHERE users.rid='$user_id'));

Ja det giver megen lidt mening. Altså, jeg skal bruge pid fra tabellen products med nogle indledningsvise alm. WHERE clauses - MEN jeg skal kun bruge pids fra products, som ikke også eksisterer i users hvor users.rid = $user_id...

Giver det nogen mening overhovedt ?!
Avatar billede Slettet bruger
04. maj 2000 - 18:46 #1
Her er et lidt bedre (mere præcist) eksempel på det, jeg gerne vil have den til :

"SELECT pid from products WHERE ( pgender LIKE '$gender' AND
page LIKE '$age' AND
pstereo LIKE '$stereotype' AND
pdelivery<'$date_insert' ) AND  (wishes.pid!=products.pid WHERE wishes.rid='$rid')"

Forhåbentligt .... ;)
Avatar billede lange Nybegynder
04. maj 2000 - 19:06 #2
SELECT pid FROM products,
Avatar billede lange Nybegynder
04. maj 2000 - 19:07 #3
Doh, kom til at trykke Udfør selvom jeg ikke har noget umiddelbart forslag, sorry :o/
Avatar billede sjensen Nybegynder
04. maj 2000 - 22:38 #4
Problemet er at du vil lave en wherecaluse under den oprindelige whereclause.

Løsningen hedder er:

select whishes.pid, whiches.rid, products.pid from whiches w, products p where ( pgender LIKE '$gender' AND
page LIKE '$age' AND
pstereo LIKE '$stereotype' AND
pdelivery<'$date_insert' ) AND  (wishes.pid!=products.pid AND wishes.rid='$rid')"

Du kan også lave ne join, hvor du joiner tabellerne products og whishes på typen PID, så kan du også teste direkte, som i ovenstående.
Avatar billede Slettet bruger
04. maj 2000 - 22:47 #5
Jeg prøvede noget ala :

SELECT products.pid
            from products LEFT OUTER JOIN wishes ON products.pid=wishes.pid
        WHERE (products.pgender LIKE '$gender' AND
        products.page LIKE '$age' AND
        products.pstereo LIKE '$stereotype' AND
        wishes.rid <> '$user_id'

Det retunerede bare ingenting ... ?!
Avatar billede Slettet bruger
04. maj 2000 - 22:57 #6
Det query du skrev giver :

MySQL returnerede: Unknown table 'wishes' in field list
Avatar billede Slettet bruger
04. maj 2000 - 22:57 #7
Og vær opmærksom på at det KUN er pid jeg vil hente ud .... ikke os rid ...
Avatar billede sjensen Nybegynder
05. maj 2000 - 10:44 #8
Ja, jeg beklager jeg har stavet wishes forskelligt i den samme sætning. Min fejl.

Den left outer join du har lavet er ok, men du skal bare sætte paranteser omkring de forskellige tests, a la dette:


SELECT products.pid
            from products LEFT OUTER JOIN wishes ON products.pid=wishes.pid
        WHERE ((products.pgender LIKE '$gender') AND
        (products.page LIKE '$age') AND
        (products.pstereo LIKE '$stereotype') AND
        (wishes.rid <> '$user_id'))

så bør den være hjemme. Det er fordi du mixer like/and og ne (<> betyder jo not equal og kunne skrives med forkortelsen NE)



Avatar billede Slettet bruger
05. maj 2000 - 14:25 #9
Hmm umiddelbart, var det ikke det, der var problemet. Men jeg fandt selv en løsning, der virkede. For en god ordens skyld er den her :

$query= "SELECT a.pid from products a LEFT OUTER JOIN wishes b on (a.pid = b.pid and b.rid ='$user_id')
            where (b.pid is null AND
                a.pgender LIKE '$gender' AND
                a.page LIKE '$age' AND
                a.pstereo LIKE '$stereotype' AND
                a.pdelivery<'$date_insert' AND
                a.sum<'$max_price' AND
                a.sum>'$min_price')";
    }
Avatar billede jd Nybegynder
11. november 2000 - 21:33 #10
halloo??? en afslutning?
Avatar billede Slettet bruger
07. december 2000 - 17:35 #11
Kommer her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester