Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 替换嵌套选择_Postgresql_Left Join_Inner Join_Right Join - Fatal编程技术网

Postgresql 替换嵌套选择

Postgresql 替换嵌套选择,postgresql,left-join,inner-join,right-join,Postgresql,Left Join,Inner Join,Right Join,如何进行如下postgreSQL查询: SELECT event_id, user_id FROM public."point" WHERE user_id = (SELECT id FROM public."user" WHERE email='test@gmail.com') 有JOINstatement,没有嵌套的SELECT语句。上面的工作,但我认为它不是最佳的。感谢您的回答。对于您的特殊情况,这应该可以: SELECT p.event_id, p.user_id FROM pub

如何进行如下postgreSQL查询:

SELECT event_id, user_id FROM public."point" 
WHERE user_id = (SELECT id FROM public."user" 
WHERE email='test@gmail.com')

有JOINstatement,没有嵌套的SELECT语句。上面的工作,但我认为它不是最佳的。感谢您的回答。

对于您的特殊情况,这应该可以:

SELECT p.event_id, p.user_id
FROM public."point" p JOIN
     public."user" u
     ON p.user_id = u.id 
WHERE u.email = 'test@gmail.com';
通常,在连接和加入之间切换时,需要小心重复。因此,一般的解决办法是:

SELECT p.event_id, p.user_id
FROM public."point" p JOIN
     (SELECT DISTINCT u.id
      FROM public."user" u
      WHERE u.email = 'test@gmail.com'
     ) u
     ON p.user_id = u.id ;

但是id在用户中可能已经是唯一的。

是的,这是ti,它工作正常。用户中的id是唯一的。我没有在查询的最后一部分添加与WHERE的电子邮件比较。。。在p.user_id=u.id上,其中u.email=test@gmail.com'. 非常感谢你!