SQL 语句未给出正确的输出
本文关键字:输出 语句 SQL | 更新日期: 2023-09-27 18:18:04
我有一个数据库驱动的Web应用程序。在我的数据库中,我有四个表:
User
----
UserID
FirstName
LastName
UserGroup
---------
UserGroupID
UserID
GroupID
Group
-----
GroupID
Name
Adress
------
AdressID
UserID
Street
...
使用我当前的SQL语句,我没有得到任何回报。这是我的 SQL:
select
a.UserID, a.FirstName, a.LastName, b.GroupID, b.UserID,
c.GroupID, c.Name, d.AdressID, d.UserID,
from User as a, UserGroup as b, Group as c, Adress as d
where a.UserID = b.UserID and b.GroupID = c.GroupID
and a.UserID = d.UserID and d.AdressID= @id"
我为变量 id 提供以下语句:
dbCommand.Parameters.Add("@id", SqlDbType.Int).Value = id;
知道为什么我什么也没回来吗?我也没有任何错误。我将结果存储在调试时为空的DataTable
中。
你在"from"之前有逗号,而且你最好使用inner join
而不是像这样加入:
select a.UserID, a.FirstName, a.LastName, b.GroupID, b.UserID, c.GroupID, c.Name, d.AdressID, d.UserID
from User as a
inner join UserGroup as b on b.UserId = a.UserId
inner join Group as c on c.GroupID = b.GroupID
inner join Adress as d on a.UserID = d.UserID
where d.AdressID = @id
试试这个。
尝试使用INNER JOIN
查询
SELECT a.UserID, a.FirstName, a.LastName, b.GroupID, b.UserID, c.GroupID, c.Name, d.AdressID, d.UserID
FROM User as a
INNER JOIN UserGroup as b
ON a.UserID = b.UserID
INNER JOIN Group as c
ON b.GroupID = c.GroupID
INNER JOIN Adress as d
ON a.UserID = d.UserID
WHERE d.AdressID= @id