我是Grails的新手,我有一个问题。
我有三个表table1,table2,table3。我试图从table1显示emailIds。首先以tableI的升序显示table1中的行,这些行映射到table3中,然后按照emailIds的升序显示table3中不存在于table3中的剩余行。
这是表结构:
table1列
id
emailId
user
table2列
id
aliasemailId
table3列
table1id -> foreign key table1 id
table2id -> foreign key table2 id
table1行
id emailId user
----- -------------- ------
1 s_user@xyz.com user1
2 w_user@xyz.com user2
3 a_user@xyz.com user3
4 v_user@xyz.com user4
5 x_user@xyz.com user5
6 e_user@xyz.com user6
7 g_user@xyz.com user7
8 k_user@xyz.com user8
9 l_user@xyz.com user9
10 t_user@xyz.com user10
table2行
id aliasemailId
----- -----------------
1 alias1@xyz.com
2 alias2@xyz.com
3 alias3@xyz.com
table3行
table2id table1id
-------- ----------
1 10
1 3
1 7
2 10
3 4
我希望以下列格式获取emailIds列表。
使用table3" table2id按升序列出table1中的所有emailIds。
按升序列出table1中的所有emailIds。从步骤1中排除ID。
结果的最终输出应如下所示:for table2id - 1,不包括表1中的id 1
id emailId user
----- -------------- ------
3 a_user@xyz.com user3 (from table 3)
7 g_user@xyz.com user7 (from table 3)
10 t_user@xyz.com user10 (from table 3)
6 e_user@xyz.com user6 (from table 1)
8 k_user@xyz.com user8 (from table 1)
9 l_user@xyz.com user9 (from table 1)
1 s_user@xyz.com user1 (from table 1)
4 v_user@xyz.com user4 (from table 1)
2 w_user@xyz.com user2 (from table 1)
5 x_user@xyz.com user5 (from table 1)
我想知道是否有办法使用条件构建器实现此目的。请让我知道如何显示它。
感谢任何帮助。
更新
有没有办法为会话创建临时表。这样数据就可以插入到临时表中,并在会话结束后消失临时表。
更新2:
我尝试使用以下MySQL查询:它给出了值,但结果不正确。
(Select * from table1 where id in (SELECT table1id FROM table2 where table2id=1) order by emailid) union distinct (select * from table1 order by emailid) limit 30 offset 0