【发布时间】:2015-06-12 03:05:05
【问题描述】:
我有两个表:一个用于用户信息,第二个用于映射用户之间的某些关系(具有两个 id 的两个列表,从 id 到 id 关系) 我正在尝试为特定的用户 ID 查找他所有用户的关系 ID(内部选择),然后通过加入包含更多信息的表格来获取有关它们的更多信息。
鉴于以下错误: 错误:#1064 - 您的 SQL 语法有错误;检查与您的 mySQL 服务器版本相对应的手册列表,以在第 6 行的 ') AS i Limit 0,30' 附近使用正确的语法
我的查询有什么问题?这个查询在性能方面是否可以,或者有其他方法可以做到吗?
查询:
SELECT i.*
FROM
((SELECT uc.contactId
FROM tbl_users AS u
JOIN tbl_users_contacts AS uc ON u.Id = uc.userId
WHERE uc.userId =1) AS contacts_ids JOIN tbl_users AS u
ON contacts_ids.contactId = u.Id) AS i;
编辑:固定为:
SELECT *
FROM
((SELECT uc.contactId
FROM tbl_users AS u
JOIN tbl_users_contacts AS uc ON u.Id = uc.userId
WHERE uc.userId =1) AS contacts_ids JOIN tbl_users AS u
ON contacts_ids.contactId = u.Id);
不知道为什么最后的As i是个问题,所以我主要针对这个帖子问问题2。
【问题讨论】:
-
所以你可能在用户表中同时拥有 userId 和 contactId 相同?或者您正在尝试做什么,显示一些示例数据和预期结果。
-
@AbhikChakraborty:我有用户信息、姓名、电子邮件电话等,这是 tbl_users。第二个表显示谁在他的联系人列表中拥有谁作为联系人。我想为特定用户显示他的所有联系人列表信息:为每个联系人用户获取所有详细信息(姓名电话电子邮件)
-
tbl_users_contacts的字段是什么? -
userId,contactId-当然每个userId都可以有多个contactId(在不同的行)
标签: mysql database pdo phpmyadmin