04. maj 2000 - 18:39Der 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...
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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')"
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.
Synes godt om
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 ... ?!
Synes godt om
Slettet bruger
04. maj 2000 - 22:57#6
Det query du skrev giver :
MySQL returnerede: Unknown table 'wishes' in field list
Synes godt om
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 ...
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)
Synes godt om
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')"; }
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.