Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день. у меня возникла проблема, сам я с ней уже не в состоянии справиться малой кровью) Нужна подсказочка.
Есть таблицы item, tags и item2tag, связывающая их (связь много ко многим)
item
id name about tag_id
tags
id tag
item2tag
item_id tag_id
В результате можно делать запрос всех элементов из таблицы, содержащих один из тегов и все устраивает, а вот как сделать запрос записей, содержащих 2 тега именно?
Ищу по одному тегу так, например:
SELECT s_item.id, s_item.field1,s_item.field3, s_item.town, s_item.phone, s_tags.name
FROM item s_item LEFT JOIN item2tag s_item2tag
ON s_item.id=s_item2tag.item_id LEFT JOIN tags s_tags ON s_item2tag.tag_id=s_tags.id
WHERE s_tags.name='фильм' ORDER by s_item.id ASC LIMIT 50
Отредактированно UdarEC (24.12.2009 19:34:59)
Неактивен
Через самообъединение только.
Неактивен
Большое спасибо, попробую сейчас. Ваш вариант будет без Join-ов вообще, он лучше кажется выходит по нагрузке и скорости работы?
Неактивен
С JOINами, с внутренними. По нагрузке чуть лучше, чем внешние, т.к. не надо NULL
проверять.
Неактивен