加入不同表的多个字段 [英] Join Multiple Fields Of Different Tables

查看:76
本文介绍了加入不同表的多个字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

hi


请在下列情况下帮助我。我不明白用什么类型的查询来获得结果。



我有4个表,我希望user_name基于IncidentID。但是Username属于不同的表,并且与它们相关的字段也存在于不同的表中。但所有表都属于同一个数据库。



table_incident.Id

table_incident.Entitydimkey



table_workitemdim.Entitydimkey

table_workitemdim.workitemdimkey



table_workitemassign.workitemdimkey

table_workitemassign.workitemassign_userdimkey



table_userdim.userdimkey

table_userdim.firstname



请告诉我紧急应该怎么做我... ..



提前致谢

问候

M Ahsan Misbah

hi
Please help me out in the following situation. i dont understand what type of query used to get result.

I have 4 tables and i want user_name on the basis on IncidentID. But Username is belongs to a different table and the fields which relate them also present in different tables. But All tables belongs to same DB.

table_incident.Id
table_incident.Entitydimkey

table_workitemdim.Entitydimkey
table_workitemdim.workitemdimkey

table_workitemassign.workitemdimkey
table_workitemassign.workitemassign_userdimkey

table_userdim.userdimkey
table_userdim.firstname

Please tell me urgent what should i do..

Thanks in advance
Regards
M Ahsan Misbah

推荐答案

从table_userdim内部联接中选择名字

table_incident on(table_userdim.userdimkey = table_incident.entitydimkey)内部联接

table_workitemdim on(table_incident。 entitydimkey = table_workitemdim.Entitydimkey)内部联接

table_workitemassign

(table_workitemdim.Entitydimkey = table_workitemassign.workitemassign_userdi mkey)

其中

table_incident.id = @id





或者你也可以通过这种方式实现这个改变....





从table_userdim内部联接中选择名字

table_workitemassign

on(table_userdim.userdimkey = table_workitemassign.workitemassign_userdimkey)内部联接

table_workitemdim on(ttable_workitemassign.workitemdimkey = table_workitemdim .entitydimkey)内部联接

table_incident on(table_incident.entitydimkey = table_workitemdim.Entitydimkey)



where

table_incident.id = @id
Select firstname from table_userdim inner join
table_incident on (table_userdim.userdimkey = table_incident.entitydimkey)inner join
table_workitemdim on (table_incident.entitydimkey = table_workitemdim.Entitydimkey) inner join
table_workitemassign on
(table_workitemdim.Entitydimkey = table_workitemassign.workitemassign_userdimkey)
where
table_incident.id = @id


Or you can also achieve this to change in this way ....


Select firstname from table_userdim inner join
table_workitemassign
on (table_userdim.userdimkey = table_workitemassign.workitemassign_userdimkey)inner join
table_workitemdim on (ttable_workitemassign.workitemdimkey = table_workitemdim .entitydimkey)inner join
table_incident on (table_incident.entitydimkey = table_workitemdim.Entitydimkey)

where
table_incident.id = @id




尝试以下查询

Hi,
try below query
--this query will give first name of the record with id = 10
SELECT t4.firstname 
FROM table_incident AS t1 
INNER JOIN table_workitemdim AS t2 ON t2.Entitydimkey = t1.Entitydimkey 
INNER JOIN table_workitemassign as t3 ON t3.workitemdimkey = t2.workitemdimkey
INNER JOIN table_userdim as t4 ON t4.userdimkey = t3.workitemassign_userdimkey
WHERE t1.ID = 10





希望有帮助



hope it helps


你的架构需要引起注意......目前还不清楚Entitydimkey应该指向什么表。



你需要做些什么研究o n表中的外键。

一旦你掌握了这个概念,就需要对SQL JOINS做进一步的研究。



作为一个例子,我将在事件表的用户表上有一个外键(FK),这样我就可以轻松确定哪个用户引发了事件。然后我会沿着这些行查询...

Your schema needs some attention ... it''s not clear what table is Entitydimkey supposed to "point" to.

You will need to do some research on Foreign Keys in tables.
Once you''ve grasped that concept you will need to do some further research on SQL JOINS.

As an example I would have a foreign key (FK) to the user table on the incident table so that I could easily determine which user raised the incident. I would then query along these lines...
SELECT * FROM table_incident I
INNER JOIN table_userdim U on I.userdimkey=U.userdimkey



顺便说一句,它不是一个好的表格来为你的表添加前缀单词table


As an aside, it''s not considered good form to prefix your tables with the word "table"


这篇关于加入不同表的多个字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆