我无法使用以下表格形成查询,这些表格将查找Note表格中的所有Notes,该表格由属于登录用户的同一公司的任何用户创建。
Note
:
note_id (int),
note_text (varchar),
created_by (int)
User
:
user_id (int),
company_id (int)
登录用户的用户ID作为参数传递给查询。
我想从其中创建__的表Notes
中获取注释(所有用户的user_id,其company_id = company_id为LOGGED_IN_USER)
请帮我制定一下查询。看起来非常直接,但是无法达到目的。
答案 0 :(得分:3)
我不确定LOGGED_IN_USER是一个表还是另一个对象,但如果它是一个包含您引用的列的表,那么这样的连接就可以了。
select note_text
from Note n
JOIN User u ON u.user_id = n.created_by
JOIN LOGGED_IN_USER lin ON lin.user_id = u.user_id
and lin.company_id = u.company_id
答案 1 :(得分:1)
你可能需要一个用于Notes的user_id的外键。并使用INNER JOIN
答案 2 :(得分:1)
感谢Vinnie和所有人的回复。我终于成功找出了查询。 LOGGED_IN_USER_ID只是一个应该传递给查询的数字参数。
select n.* from Note n where
n.created_by in (
select u1.user_id from User u1 inner join User u2
on u1.company_id=u2.company_id and u2.user_id = :LOGGED_IN_USER_ID*
)
再次感谢。
答案 3 :(得分:0)
如果我没有误解你的问题,请尝试这种方式
SELECT note_text
FROM Note n
INNER JOIN User u ON u.user_id = n.created_by
WHERE n.created_by= (select u.user_id from User where company_id=LOGGED_IN_USER LIMIT 1 )