Hämta, jämföra, loopa ut (INNER JOIN?)

Databaser & SQL

1 svar · 393 visningar · startad av fakenick!

Medlem sedan juli 2002202 inlägg
Trådstart#1

Halloj.

Har två tabeller i databasen.

En som heter webshop som har tre kolumner (id,webshopid,productid).
Denna tabell länkar ihop produkter med de olika webshopparna som finns.

Sedan har jag en som heter products som innehåller information såsom kategori, märke etc.

Vad jag nu vill göra med en SQL-sats är en sortering.

När man väljer i en select-list på kategorin BYXOR t.ex, så skall man endast få upp det
man har i sin egen webshop med kategorin BYXOR
enligt produkt-tabellen.

Har börjat knåpa litegrann.

<select onchange="window.open(this.options[this.selectedIndex].value,'_self')">
<option value="default.asp?category=byxor">byxor</option>
<option value="default.asp?category=skjortor">skjortor</option>
</select>
select p.id, p.gender, p.category, p.brand
from products p join webshop w
on p.id = w.productid where webshopid="& session("WEBSHOPID") &"
group by p.id,p.gender,p.category

Frågan är hur man skall få med allting.

* Hämta rätt webshopid utifrån session
* Joina och jämföra webshop.productid och products.id
* Loopa ut rätt kategori tillsammans med övrig information såsom storlekar, beskrivning etc

Medlem sedan dec. 200012 464 inlägg
#2

SQL satsen borde vara mer åt detta håll.

select id, 
       gender, 
       category, 
       brand
  from products p 
 where exists
     (select *
        from webshop w
       where p.id = w.productid 
         and webshopid = <webshopid>
   and category =  '<category>'

jag har hoppat över icke sql-detaljer som hur du får rätt värden från ditt formulär :)

257 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)