sql >> Databasteknik >  >> RDS >> Mysql

Lista objekt efter kategori

Du vill förmodligen gå med item2cat-tabellen på din artikeltabell:

SELECT
  item.id
, item.name
, item.desc
FROM item
INNER JOIN item2cat ON item.id = item2cat.itemID
WHERE item2cat.catID = [category_id]

eller till exempel

SELECT
  item.id
, item.name
, item.desc
, category.id
, category.name
FROM item
INNER JOIN item2cat ON item.id = item2cat.itemID
INNER JOIN category ON item2cat.catID = category.id
WHERE category.id IN ( [category_id], [category_id], [category_id])

UPPDATERA
Om du ändrade dina tabell-ID så här:

item (itemId, name, desc)
item2cat (itemId, categoryId)
category (categoryId, name, etc)

du kan skriva om den första frågan som:

SELECT
  item.itemId
, item.name
, item.desc
FROM item
INNER JOIN item2cat USING( itemId )
WHERE item2cat.categoryId = [category_id]

En annan fördel är att id kolumnen i varje tabell är nu entydig.



  1. Plan Explorer 3.0-webbseminarium – exempel och frågor och svar

  2. 2 sätt att returnera icke-numeriska värden i SQLite

  3. Hur man tar bort data från Elastisearch

  4. xampp mysql och phpmyadmin fungerar inte