Gå til innhold

Spørring hvor to kriterier må være oppfylt


Anbefalte innlegg

Har to tabeller, hvorav jeg skal kjøre spørring mot den ene.

 

tabell1

id Tittel

1 Test1

2 Test3

3 Test2

 

Tabell2

id ord

1 ja

1 nei

1 kanskje

2 hvem

2 hva

2 ja

3 hvem

3 nei

3 ja

 

Muligheten skal være å fylle inn to felt og spørringen skal returnere et resultat som oppfyller begge kriterer.

 

F.eks. søkes det på ja og nei skal dette resultere i output

Test1

Test2

 

Hvordan få til dette med mysql og php.

Lenke til kommentar
Videoannonse
Annonse

Blir ikke det bare en SQL setning?

 

$utvalg = mysql_query("SELECT * FROM tabell1 WHERE id IN (SELECT id WHERE ord = 'felt1' OR ord = 'felt2');");

while ( $object = mysql_fetch_object($utvalg) )
{
 echo $object->Tittel;
}

 

tror det blir riktig, har ikke noe å teste med, så du får teste og se om du får hva du regner med at du skal få ut.

 

 

EDIT. misforsto.... så må tenke litt mer for hvordan du skal gjøre det.

Endret av Mobsan
Lenke til kommentar

Tja... hva skal man si... løs det via PHP, det vil gi den mest oversiktlige koden. Jeg antar at koden Lokaltog postet ikke vil fungere, siden din gir alle radene som har ja eller nei. Sånn som jeg skjønte det du skrev så ønsket du å ha en spørring som sjekket at tabell 2 må ha en rad med ja og en rad med nei?

 

I så fall kan jeg vise deg et lite triks. I utgangspunktet er løsningen å gjøre dette via flere spørringer, enten det er subquery eller flere spørringer fra PHP - men som jeg sa så finnes det et triks.

 

Vi skal for enkelhetensskyld jukse litt, og "lage" en ekstra tabell, vi skal duplisere tabell 2. På den måten kan vi velge tittler fra tabell 1 der tabell 2 er ja og tabell 3 er nei. Se på denne:

 

SELECT

tabell1.tittel

FROM

tabell1, tabell2, tabell2 as tabell3

WHERE

tabell1.id = tabell2.id AND

tabell1.id = tabell3.id AND

tabell2.ord = 'ja' AND

tabell3.ord = 'nei'

 

For det første er denne koden ikke testet siden jeg ikke har tabellene dine. Videre er koden kanskje litt uren, men så lenge tabellene dine ikke blir for store så er det ikke noe problem. Men, du får ikke sitere meg på denne koden! Hehe :)

 

Merk: bruk eventuelt SELECT DISTINCT(tabell1.tittel) hvis det er nødvedig.

 

Lykke til :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...