我有这 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
使用该联系人 ID 和该组 ID 创建一个条目。
我需要一个查询语句,它将按名称搜索特定组中的所有联系人并返回这些联系人。
我还需要一个查询语句,它将搜索特定组中的所有联系人及其附加地址并返回这些联系人。
我对这将如何工作感到非常困惑。
这是我用来搜索联系人并能够搜索他们的地址的查询:
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'
我不确定这是否会帮助任何人。我很困惑如何将它们结合起来。