如何进行SQL连接以使值与提供的值相差4个表?
我的标题可能不是很清楚,所以我做了一个小的模式来解释我试图实现的目标。如何进行SQL连接以使值与提供的值相差4个表?,sql,database,postgresql,join,inner-join,Sql,Database,Postgresql,Join,Inner Join,我的标题可能不是很清楚,所以我做了一个小的模式来解释我试图实现的目标。xxxx\u uid标签是链接两个表的外键 目标:通过给出proj_uid值,从grids表中检索列 我不太擅长SQL连接,我不知道如何构建一个能够实现这一点的查询 实际上,我正在执行3个查询来执行该操作: 1) 这给了我一个res\u uid来处理: select rec_uid from receptor_results inner join results on results.res_uid = receptor_
xxxx\u uid
标签是链接两个表的外键
目标:通过给出proj_uid
值,从grids
表中检索列
我不太擅长SQL连接,我不知道如何构建一个能够实现这一点的查询
实际上,我正在执行3个查询来执行该操作:
1) 这给了我一个res\u uid
来处理:
select rec_uid from receptor_results
inner join results on results.res_uid = receptor_results.res_uid
where receptor_results.res_uid = res_uid_VALUE order by rec_uid asc limit 1
从results中选择res\u uid,其中results.proj\u uid=res\u uid asc limit 1的值顺序“
2) 这为我提供了一个记录uid
:
select rec_uid from receptor_results
inner join results on results.res_uid = receptor_results.res_uid
where receptor_results.res_uid = res_uid_VALUE order by rec_uid asc limit 1
3) 从grids
表中获取所需的网格列:
select grid_name from grids
inner join receptors on receptors.grid_uid = grids.grid_uid
where receptors.rec_uid = rec_uid_VALUE;
是否可以执行一个SQL语句,以获得与我实际执行的3个SQL语句相同的结果?在查询中,您不限于一个联接:
select grids.grid_name
from grids
inner join receptors
on receptors.grid_uid = grids.grid_uid
inner join receptor_results
on receptor_results.rec_uid = receptors.rec_uid
inner join results
on results.res_uid = receptor_results.res_uid
where results.proj_uid = VALUE;
关于名称的一个小说明,通常在sql中,表是以单个项命名的,而不是以组命名的。因此,“结果”不是“结果”,而“受体”不是“受体”等等。当您使用sql时,这将是有意义的,像您这样的名称看起来会很奇怪。此外,键入的字符也少了一个
是的,这是可能的