2013-09-21 28 views
0

我有一个称为联系人的地址簿。为了帮助组织联系人,我有团队(如家人,朋友,工作)。我想拉说,4或10个联系人的例子显示为每个组。这适用于列出所有组的组索引页面,但不打算为每个组提供完整的联系列表(仅限于专用组页面)。当显示所有联系人组时,MySQL显示的联系人数量有限

组表和列

email_groups

idid_username

联系人表和列

email_contacts

idid_groupid_username

我一直在做这个,但我对c1得到一个错误的列名。

SELECT 
eg.id, 
eg.name, 
(SELECT c1.name FROM email_contacts AS c1 WHERE id_user='1' LIMIT 0,1) AS contact_1, 
(SELECT c2.name FROM email_contacts AS c1 WHERE id_user='1' LIMIT 1,1) AS contact_2, 
(SELECT c3.name FROM email_contacts AS c3 WHERE id_user='1' LIMIT 2,1) AS contact_3, 
(SELECT c4.name FROM email_contacts AS c4 WHERE id_user='1' LIMIT 3,1) AS contact_4 
FROM email_groups AS eg 
INNER JOIN email_contacts AS ec on ec.id=eg.id_group 

回答

0

你已经在你的子查询我想这将是C2的第二子查询提供别名C1两次,你想选择c2.name,但您所提供的别名为c1SELECT c2.name FROM email_contacts AS C1

SELECT 
eg.id, 
eg.name, 
(SELECT c1.name FROM email_contacts AS c1 WHERE id_user='1' LIMIT 0,1) AS contact_1, 
(SELECT c2.name FROM email_contacts AS c2 WHERE id_user='1' LIMIT 1,1) AS contact_2, 
(SELECT c3.name FROM email_contacts AS c3 WHERE id_user='1' LIMIT 2,1) AS contact_3, 
(SELECT c4.name FROM email_contacts AS c4 WHERE id_user='1' LIMIT 3,1) AS contact_4 
FROM email_groups AS eg 
INNER JOIN email_contacts AS ec on ec.id=eg.id_group 
+1

啊,我确实能正常工作,但我错过了那个错误,谢谢。 – John

+0

欢迎... :) –