webForumDet fria alternativet

Problem med SQl-sats

11 svar · 339 visningar · startad av Smultron

SmultronMedlem sedan juli 2002431 inlägg
#1

Hur ska jag göra denna sql-satsen så att den fungerar

SELECT * FROM users, groups WHERE users.groups= 'groups.group_id WHERE class = '1''

jag har 2 tabeller
jag vill plocka alla från users som är medlemmar i en grupp, och gruppen måste ha class='1'

min sqlsats är ganska riktigt mycket fel men var värt ett försök :)
nån kanske kan hjälpa mig med den!

MickeA.comMedlem sedan feb. 20034 528 inlägg
#2

Skicka gärna med eventuella felmess i framtiden.
Är 'class' av datatypen räknare el. tal, då ska det inte vara några fnuttar runt om.

Sen ska du heller inte ha några fnuttar runt groups.group_id.

Prova ta bort dom och testa.

@ndersMedlem sedan juni 200026 914 inlägg
#3

Så här hade jag försökt:

SELECT * FROM users INNER JOIN groups ON users.groups = groups.groupid AND groups.class = 1

mvh

SmultronMedlem sedan juli 2002431 inlägg
#4

class är en vanlig varchar men ska testa @nders förslag..

SteadyMedlem sedan dec. 2004202 inlägg
#5

Skriv grouns.class = '1' då. :)
Men om du inte har annat än tal i den, rekommenderar jag dig att göra om den till Int.

SmultronMedlem sedan juli 2002431 inlägg
#6

hmm verkar itne vara helty rätt problemet är ju att den ska plocka alla användare som är medlem i en grupp som har class='1'

@ndersMedlem sedan juni 200026 914 inlägg
#7

Antingen förstår jag inte hur du menar, eller så är din datamodell konstig. Kan du beskriva hur tabellerna ser ut, ge exempel på innehåll, och vad du vill få ut?

SteadyMedlem sedan dec. 2004202 inlägg
#8

Jag tror @nders menade såhär:

SELECT * FROM users INNER JOIN groups ON users.groups = groups.groupid [b]WHERE[/b] groups.class = 1
SmultronMedlem sedan juli 2002431 inlägg
#9

fått det att funka nu

SELECT * FROM users INNER JOIN groups ON users.groups = groups.group_id AND groups.class = '1'
@ndersMedlem sedan juni 200026 914 inlägg
#10

Steady skrev:

Jag tror @nders menade såhär:

SELECT * FROM users INNER JOIN groups ON users.groups = groups.groupid [b]WHERE[/b] groups.class = 1

Det gjorde han inte. :)

Men denna gång borde det funka lika bra med WHERE. Hade det varit en OUTER JOIN hade det inte gjort det dock. :)

Jag håller med om detta:

Steady skrev:

Men om du inte har annat än tal i den, rekommenderar jag dig att göra om den till Int.

Mvh :)

SteadyMedlem sedan dec. 2004202 inlägg
#11

@nders skrev:

Det gjorde han inte. :)

Men denna gång borde det funka lika bra med WHERE. Hade det varit en OUTER JOIN hade det inte gjort det dock. :)

Man lär så länge man lever, det visste jag inte. :) God jul!

@ndersMedlem sedan juni 200026 914 inlägg
#12

Skillnaden är:

WHERE appliceras på resultatet. I en OUTER JOIN skulle det alltså rensa bort alla poster som var anledningen till att man använde en OUTER JOIN överhuvudtaget. Resultatet skulle alltså bli en INNER JOIN.

AND i samband med joinen sätter villkoret i samband med just joinen, och inte på slutresultatet.

Hoppas någon förstod något av mitt svammel i alla fall. :)

God jul tillbaks!

mvh

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb