【发布时间】:2018-01-11 13:36:30
【问题描述】:
首先,表格名称和布局:
这是我想要的结果:
我猜这就是“知道了”(技巧)..
我只会传递一个(动态)imis_id/user_id(当前在一个表上不匹配的列名)...
因此,需要在关系表上对传入的(动态)id.. 以及 current_org = 1 进行查找(选择)。
这将获取/给我目标 org_id,我需要在其中获取所有用户信息(与 org_id 相关联).. 以及所有组织详细信息。
这是一个弱/失败的尝试:(它使用硬编码的 org_id)这是无效的。我只需要传入 user_id/imis_id.. 并且 current_org = 1 以获取目标 org_id。
SELECT genealogy_orgs.org_id, genealogy_orgs.org_name,
genealogy_relations.user_id, genealogy_relations.relation_type, genealogy_relations.start_year, genealogy_relations.end_year,
genealogy_users.imis_id, genealogy_users.full_name
FROM genealogy_orgs
INNER JOIN genealogy_relations ON genealogy_orgs.org_id = genealogy_relations.org_id
INNER JOIN genealogy_users ON genealogy_relations.user_id = genealogy_users.imis_id
WHERE genealogy_orgs.org_id = '84864';
这是另一个失败的尝试(仅返回 1 行).. 但使用了正确的标准:
SELECT
genealogy_relations.org_id,
genealogy_relations.user_id, genealogy_relations.relation_type, genealogy_relations.start_year, genealogy_relations.end_year,
genealogy_users.imis_id, genealogy_users.full_name,
genealogy_orgs.org_name
FROM genealogy_relations
INNER JOIN genealogy_orgs ON genealogy_relations.org_id = genealogy_orgs.org_id
INNER JOIN genealogy_users ON genealogy_relations.user_id = genealogy_users.imis_id
WHERE genealogy_relations.user_id = '00003' AND genealogy_relations.current_org = '1';
此时,我什至不确定我需要搜索什么?这是“子查询/子选择”发挥作用的地方吗?
我的 MySQL-fu 仅限于非常直接/plain-jane 查询类型。这比我习惯的要先进。
【问题讨论】:
-
将表格和数据发布为我们无法从图片中复制/粘贴的文本READ THIS
-
向我们展示数据库架构、示例数据和预期输出。请阅读How-to-Ask 这里是START 了解如何提高问题质量并获得更好答案的好地方。 How to create a Minimal, Complete, and Verifiable example 尝试在rextester.com 中创建样本
-
你的“动态ID”是什么意思?因为您的结果为 3 个不同的 id 返回 3 行
-
@Jaun Carlos Oropeza 1.) 我的意思是 '00003' 将是一个变量.. 它在示例中是硬编码的。 2.) 我不明白如何使用该 rextester.com 链接
-
那么你需要清楚你的参数中的什么值会产生那个“欲望”的结果,否则只是一个猜测。现在您的查询似乎没问题,您将值设置为“00003”并得到一个结果,因为您只有一行
标签: mysql