Как связать таблицы MySQL в phpMyAdmin

Опубликовано: 12.10.2016

видео Как связать таблицы MySQL в phpMyAdmin

Ruby on Rails by Leila Hofer

Здрасти!
Очень прошу прощения, (уверен) должно быть на форуме кое-где уже спрашивали и отвечали - но не могу отыскать уже некоторое количество дней. Очень не пинайте, я в муське новичок - новее некуда)

Задача чуть не из учебника:

таблица1(открытки)
id_1        name
1             открытка1
2             открытка2
3             открытка3
4             открытка4
5             открытка5
.       
1000       открытка1000

таблица2(теги)
id_2          name
1              голубая
2              забавная
3              перфорация
4              винни пух
5              1май
.       
1000         валентинка

таблица3(связи)
id_1        id_2
1             1
1             4
1             493
2             3
2             21
и т.д.

Другими словами любая открытка имеет огромное количество тегов (малая, денек рождение, розовая, со звуком, и тд).
необходимо что бы юзер навыбирал галками тегов и получил конкретно ту открытку(ки) что соответствует всем избранным тегам.

я делал так:
$mass = "'валентинка','музыкальная',,,";

SELECT distinct * FROM
открытки AS t1
JOIN
связи AS t2
JOIN
теги AS t3 ON t1.id_1 = t2.id_2 AND t2.id_2 = t3.id_2 WHERE t3.name IN ($mass)

и делал так:
SELECT distinct * FROM открытки WHERE id_1 in (SELECT id_2 FROM связи WHERE ids in (SELECT id_2 FROM теги WHERE name in ($mass)))

Оба работают, Но находятся все открытки с "музыкой" и "валентинкой", другими словами даже те где совпал только один тэг. (distinct не пашет)
Люди добрые! Что как это должно быть?!
Спасибо!




(Создание БД) 4. Создание связей между таблицами в Delphi

rss