sql >> Database teknologi >  >> RDS >> Mysql

Liste varer efter kategori

Du vil sikkert gerne deltage item2cat tabellen på din vare tabel:

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

eller for eksempel

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

OPDATERING
Hvis du ændrede dine tabel-id'er sådan her:

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

du kan omskrive den første forespørgsel som:

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

En anden fordel er, at id kolonne i hver tabel er nu utvetydig.



  1. SQL Server Linked Server Eksempel forespørgsel

  2. Få endnu en ordre efter grænse

  3. Bestil en MySQL-tabel efter to kolonner

  4. hvordan man bestiller et JSON-svar baseret på databaseforhold ved hjælp af veltalende