Java ngk介于两者之间?我想让经理们以k为名,这里有几个问题。首先,是时候开始使用ANSI-92样式的联接了……它们已经存在了25年多了。其次,为什么不使用存储过程而不是传递查询?维护和调试起来容易多了。@SeanLange感谢这篇文章,内容非常丰富。我使用旧

Java ngk介于两者之间?我想让经理们以k为名,这里有几个问题。首先,是时候开始使用ANSI-92样式的联接了……它们已经存在了25年多了。其次,为什么不使用存储过程而不是传递查询?维护和调试起来容易多了。@SeanLange感谢这篇文章,内容非常丰富。我使用旧,java,sql,sql-server,hibernate,Java,Sql,Sql Server,Hibernate,ngk介于两者之间?我想让经理们以k为名,这里有几个问题。首先,是时候开始使用ANSI-92样式的联接了……它们已经存在了25年多了。其次,为什么不使用存储过程而不是传递查询?维护和调试起来容易多了。@SeanLange感谢这篇文章,内容非常丰富。我使用旧样式只是因为它是一个简单的查询,我没有想到会有这么多问题。关于为什么不使用它们的过程,说来话长,但我将尝试这两种建议,以替换“旧式连接”为什么wine_styles表甚至在查询中?它根本没有被引用。 select distinct p.id,


ng
k
介于两者之间?我想让经理们以
k
为名,这里有几个问题。首先,是时候开始使用ANSI-92样式的联接了……它们已经存在了25年多了。其次,为什么不使用存储过程而不是传递查询?维护和调试起来容易多了。@SeanLange感谢这篇文章,内容非常丰富。我使用旧样式只是因为它是一个简单的查询,我没有想到会有这么多问题。关于为什么不使用它们的过程,说来话长,但我将尝试这两种建议,以替换“旧式连接”为什么wine_styles表甚至在查询中?它根本没有被引用。
select distinct p.id, p.name, m.name
from test001.npd.projects p,
     test001.npd.customer,
     test001.npd.manager w
where lower(p.name) like '%%' and lower(p.customer) like '%%' and lower(m.name) like '%k%'
IF (OBJECT_ID('npd.searching') IS NOT NULL)
  DROP PROCEDURE npd.searching

USE test001;
GO
CREATE PROCEDURE npd.searching
    @project nvarchar(50),
    @customer nvarchar(50),
    @manager nvarchar(50),
    @wine nvarchar(50)
AS
    SET NOCOUNT ON;
    select p.id, p.name, m.name from test001.npd.projects p
        inner join test001.npd.managers m on p.manager_id = m.id
        inner join test001.npd.wine_styles w on p.wine_style_id = w.id
    where 
        lower(p.name) like '%' + @project + '%' and 
        lower(p.customer) like '%' + @customer + '%' and 
        lower(m.name) like '%' + @manager + '%' and 
        lower(w.name) like '%' + @wine + '%';
GO