我的数据库中有 3 个表。
- ab_contacts
- ID
- 名
- 姓
- 地址簿_id
- 等(更多,但这些是相关的)
- ab_addressbooks
- 姓名
- ID
- 共同评论
- ID
- 链接ID
- 评论
我想创建一个查询,让我在给定的通讯录中选择与他们相关的所有联系人和评论。
要选择给定地址簿中的所有人,我可以使用:
select count(*) from ab_contacts where addressbook_id = '50';
这将返回 8152 人。
但是,当我运行查询时:
select
ab_addressbooks.name,
ab_contacts.first_name,
ab_contacts.last_name,
ab_contacts.email,
ab_contacts.email2,
ab_contacts.email3,
ab_contacts.function,
ab_contacts.address,
ab_contacts.address_no,
ab_contacts.city,
ab_contacts.state,
ab_contacts.zip,
ab_contacts.home_phone,
ab_contacts.work_phone,
ab_contacts.cellular,
REPLACE(REPLACE(REPLACE(ab_contacts.comment, '\r', ', '), '\n', ', '), '\\', '') AS comment,
REPLACE(REPLACE(REPLACE(group_concat(co_comments.comments separator ', '), '\r', ', '), '\n', ', '), '\\', '') AS comment2
from ab_contacts
LEFT JOIN ab_addressbooks ON (ab_contacts.addressbook_id = ab_addressbooks.id)
LEFT JOIN co_comments ON (ab_contacts.id = co_comments.link_id)
WHERE ab_contacts.addressbook_id = '344';`
格式有效,但我只得到 1045 个结果。我确定我缺少一些东西,但我无法弄清楚。任何帮助将不胜感激。