我有一个用户表,其中包含userFirstname,emailid,organization作为列。我必须根据已登录系统的用户过滤用户。我有登录系统的用户的电子邮件ID。我需要一个sql语句,以便根据与登录用户相同的组织过滤用户。
答案 0 :(得分:0)
SELECT *
FROM USER
WHERE organisation IN (SELECT organisation
FROM USER
WHERE emailid = loggedon_emailid)
答案 1 :(得分:0)
我认为这不是什么大问题,因为这听起来像是一个家庭作业问题。但是,在应用程序中,您很可能需要经常引用与给定emailid相关联的数据。因此,您可能想要运行
SELECT * FROM User WHERE emailid = loggedon_emailid
在代码路径的开头,将该数据保存在内存中。然后,要执行您需要的查询,您只需运行:
SELECT * FROM User WHERE organisation = $loggedon_organisation
然后,当您需要在屏幕上打印用户的名称或组织时,您将不需要额外的SQL查询。而且,如果您有其他表,则可以运行更多查询,而无需在User表中重复查找用户的行。例如(这纯粹是假设的):
SELECT organisation_address FROM Organisation WHERE organisation = $loggedon_organisation