Asp.net 如何在我的sql查询中使用左外部联接?
我的问题是:Asp.net 如何在我的sql查询中使用左外部联接?,asp.net,sql-server,Asp.net,Sql Server,我的问题是: ALTER PROCEDURE sp_logdetails ( @bookid INT ) AS BEGIN SELECT * FROM book_lending LEFT OUTER JOIN student ON student.id = book_lending.id WHERE bookid = @bookid END 当我执行上述查询时,它只显示图书借阅数据,而不显示学生数据。这是我的 这是我的学生表数据: 我可以知道,如何获得学
ALTER PROCEDURE sp_logdetails
(
@bookid INT
)
AS
BEGIN
SELECT *
FROM book_lending
LEFT OUTER JOIN student ON student.id = book_lending.id
WHERE bookid = @bookid
END
当我执行上述查询时,它只显示图书借阅数据,而不显示学生数据。这是我的
这是我的学生表数据:
我可以知道,如何获得学生资料在哪个特定的书号。我曾经将图书借阅id的外键设置为学生id
有人能指导我解决这个问题吗
谢谢,从选择列表中的联接表中选择特定列。这里的
bl
和s
是表别名,以提高可编辑性。您需要选择所需的列,并将它们包括在选择列表中。下面的查询将从两个表中选择所有列
SELECT bl.*, s.*
FROM book_lending bl
LEFT OUTER JOIN student s ON s.id = bl.id
AND bl.bookid = @bookid
您在联接中混淆了字段:
LEFT OUTER JOIN student ON student.id = book_lending.id
你试图通过两者的ID将学生与图书借阅匹配,这是错误的
将代码更改为此,您将开始返回结果:
SELECT *
FROM book_lending
LEFT OUTER JOIN student ON student.id = book_lending.studentid
WHERE bookid = @bookid
将你的WHERE替换为and对不起,我可以;I don’我无法理解,请你详细说明我的问题,如果有帮助的话,请在回答中进行编辑。考虑了解SQL.again我有同样的问题…学生数据仅变为空这其实不重要,现在测试它只是为了确保并选择*返回所有列。也许不是最佳做法,但不要认为这是问题所在。@ShadowWizard,我不知道所有列都在寻找什么,所以
*
只是一个很好的例子。现在我得到了新窗口上的数据。。要在弹出窗口中显示,我可以做什么。。?Thanksher是我现有的代码:Response.Write(“”);Response.Write(“window.open('loginfo.aspx?id=“+btn.CommandArgument+”,'u blank');回答。写(“”);不知道@Rani,请多尝试一下,如果你遇到了一个死路一条的新问题。