У меня есть таблица 'контакты', которые структурированы следующим образом:Поиск в присоединяемой таблицы с несколькими записями
- идентификатор, имя, фамилия и т.д.
И contacts_related
- contact_id, имя, фамилия
Один контакт может иметь много (включая контакт_ид). То, что я хотел бы сделать, это сделать запрос SELECT на контактах, если задан ввод поиска (например, «Джон»), он печатает все контакты, у которых есть Джон по имени ИЛИ контакты, имеющие связанный контакт с «Джоном» в названии ,
Любые предложения о том, как это сделать, без двух разных запросов?
Почему у вас есть две таблицы, как хранить такую же вещь (имя, фамилия)? – Strawberry
SELECT * FROM связаться с LEFT JOIN related_contacts b ON a.id = b.contact_id HAVING a.name = 'JOHN' ИЛИ b.name = 'JOHN' –
Возможно, вам захочется пересмотреть дизайн вашей таблицы. Я бы предложил иметь одну таблицу, хранящую «id», «name», «surname» и другую с двумя «id's» (для ссылки на человека 1 и человека 2, которые знают друг друга), тогда вы можете захотеть добавить другое поле, такое как как «отношения». – Eilidh