Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL - pilih semua item dengan banyak tagar

baik Anda tahu daftar Anda, jadi itu adalah string sederhana. dan Anda tahu hitungan Anda. ini dapat dijejalkan ke dalam Prepared Statement mysql dan dieksekusi.

Tapi di bawahnya ada daftar dan hitungan yang dimasukkan hanya untuk tujuan demo.

create table items
(   id int not null
);

create table tags
(   id int not null,
    name varchar(50)
);

create table item_tags
(   iid int not null,
    tid int not null
);

insert items (id) values (1),(2),(3),(4);
insert tags(id,name) values (1,'cat'),(2,'animal'),(3,'has nose');
-- note, everything has a nose so far:
insert item_tags (iid,tid) values (1,1),(1,3),(2,1),(2,3),(3,2),(3,3),(4,1),(4,2),(4,3);

select i.id,count(i.id)
from items i
join item_tags junc
on junc.iid=i.id
join tags t
on t.id=junc.tid and t.name in ('cat','animal')
group by i.id
having count(i.id)=2

-- only item 4 has both cat and animal (note nose is irrelevant)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. File sql Mariadb ke mysql

  2. Perbarui satu baris, tetapi masukkan jika baris tidak ada di codeigniter

  3. Bagaimana cara menyimpan Karakter Emoji di Database MySQL

  4. 1-1 Sistem obrolan menggunakan PHP/MySQL

  5. Masalah karakter Persia di database mysql