Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在我的sql查询中使用左外部联接?_Asp.net_Sql Server - Fatal编程技术网

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,请多尝试一下,如果你遇到了一个死路一条的新问题。