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

En bedre måde at søge efter tags i mysql table

Når punkt A kan associeres med mange af punkt B, og punkt B kan associeres med mange af punkt A. Dette kaldes Mange til mange forhold

Data med disse relationer bør gemmes i en separat tabel og kun samles ved forespørgsel.

Eksempel

Tabel 1

| product_uid | price | amount | | 1 | 12000 | 3000 | | 2 | 30000 | 600 |

Tabel 2

| tag_uid | tag_value | | 1 | tag_01 | | 2 | tag_02 | | 3 | tag_03 | | 4 | tag_04 |

Så bruger vi en jointabel til at relatere dem

Tabel 3

| entry_uid | product_uid | tag_uid | | 1 | 1 | 3 | | 2 | 1 | 4 | | 3 | 2 | 1 | | 4 | 2 | 2 | | 5 | 4 | 2 |

Forespørgslen vil være (Hvis du vil vælge element et og tagget)

SELECT t1.*, t2.tag_value 
FROM Table1 as t1,
JOIN Table3 as join_table ON t1.product_uid = join_table.product_uid
JOIN Table2 as t2 ON t2.tag_uid = join_table.tag_uid
WHERE t1.product_uid = 1
> 


  1. Jobkø som SQL-tabel med flere forbrugere (PostgreSQL)

  2. Forskellen mellem BINARY(16) og CHAR(32) ved lagring af MD5 i databasen

  3. Fjernelse af sporfiler med ADRCI

  4. Begræns sidetal for paginering