у меня есть эти 4 таблиц:Поиск Через несколько таблиц
contacts_address (id, owner_id, address)
contacts (id, name)
contacts_groups (id, name)
contacts_groups_link (contact_id, group_id)
Каждого контакт имеет свой собственный ряд в contacts
. У каждого контакта может быть установлен неограниченный адрес, поэтому contacts_address
- это адрес, прикрепленный к контакту по полю «owner_id». Пользователь также может иметь группы. Каждая группа имеет строку в contacts_groups
. Когда вы добавляете контакт в группу, он создает запись в contacts_groups_link
с этим идентификатором контактов и идентификатором групп.
Мне нужна инструкция запроса, в которой он будет искать по всем контактам в определенной группе по имени и возвращать эти контакты.
Мне также нужна инструкция запроса, в которой он будет искать через все контакты и их прикрепленный адрес в определенной группе и возвращать эти контакты.
Я настолько растерялся, что это сработает.
Вот запрос я использую для поиска через контакты и иметь возможность также осуществлять поиск по их адресам:
SELECT `contacts_address`.*, `contacts`.*
FROM `contacts` JOIN `contacts_address` ON `contacts_address`.`parent`=`contacts`.`id`
WHERE `contacts`.`owner`='$user_id'
Вот запрос я использую, чтобы захватить все контакты в рамках определенной группы:
SELECT * FROM contacts INNER
JOIN contacts_groups_link ON contacts_groups_link.contact_id = contacts.id
WHERE contacts_groups_link.group_id='$id'
Я не уверен, поможет ли это кому-либо. Я так смущен тем, как их сочетать.
Я не знаю, с чего начать. Я столкнулся с некоторым другим кодом MySQL, который у меня есть, который немного относится. –
Поскольку это действительно вопрос SQL, я удалил тег PHP. Кроме того, не следует добавлять в заголовок такие вещи, как 'MySQL:', вместо этого используйте систему тегов. –