sql >> Database >  >> RDS >> Mysql

Lijst items op categorie

U wilt waarschijnlijk meedoen de item2cat-tafel op uw itemtafel:

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

of bijvoorbeeld

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])

UPDATE
Als u uw tafel-ID's als volgt heeft gewijzigd:

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

je zou de eerste vraag kunnen herschrijven als:

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

Een ander voordeel is dat de id kolom van elke tabel is nu eenduidig.



  1. Hoe een nieuwregelteken in Oracle in te voeren?

  2. Hoe het MySQL-tekencoderingsprobleem op te lossen?

  3. android.database.sqlite.SQLiteException:in de buurt van s:syntaxisfout (code 1):,

  4. Android Room:hoe kan ik het hernoemen van kolommen migreren?