2016-09-19 68 views
0

我试图在我的数据库中查询表来填充表单上的下拉字段。 我希望Field1作为显示,Field2作为我插入的值。用于填充下拉字段的SQL查询

select '[CategoryName]','[CatID]' from BND_ListingCategories 

上述查询只是将[CategoryName]填充为下拉列表中的所有值。

现在确定我做错了什么。


UPDATE:

嗨, 所以我想我明白了为什么我的查询不工作我需要添加一个连接语句作为(类别名称)字段是另一个表。

即使如此,通过此更新的查询,我现在得到一个错误 错误:不明确的列名'CatID'。

select [CategoryName],[CatID] from BND_ListingCategories 
inner join BND_Listing 
on BND_ListingCategories.CatID=BND_Listing.CatID 
where LID=1 

更新2

好了所以我进取掏出傻瓜得心应手醇SQL。

通过编辑我的查询,解决了我的含糊问题。

select c.CategoryName, l.CatID 
from BND_ListingCategories AS c INNER JOIN BND_Listing as l 
on c.CatID = l.CatID 

得到它只是工作想看看我怎么能按字母顺序排序的类别名称

+0

你在用什么语言? C#/ ASP.NET,PHP,别的东西?您可能也想分享该代码。 – zedfoxus

+0

这是我相信用C#编写的DNN平台,但我使用的是插件。我不确定它是用什么编码的,但我猜C#也 – UserSN

回答

3

从列名中删除单引号。

select [CategoryName],[CatID] from BND_ListingCategories 

如果您想对类别名称进行排序,请使用ORDER BY。

select c.CategoryName, l.CatID 
    from BND_ListingCategories as c 
     INNER JOIN BND_Listing as l 
      on c.CatID = l.CatID 
    Order by c.CategoryName 
2

你的语法只是一点点关闭所有。删除引号,然后您将返回查询结果。

select [CategoryName],[CatID] from BND_ListingCategories 

您应该只需要修改选择列表以指定要从中拉出该列的表格。您可能需要在选择语句中的两列中执行此操作。

编辑新的更新问题:

select [CategoryName], BND_Listing.[CatID] from BND_ListingCategories 
inner join BND_Listing 
on BND_ListingCategories.CatID=BND_Listing.CatID 
where LID=1 
+0

当我尝试使用该语法时,我收到一条错误消息。 初始化表单失败:关键字'from'附近的语法不正确。 – UserSN

+0

你能发布与问题相关的所有代码吗?我有一个感觉,这个问题是在早期的链条。 – Zi0n1

+0

选择[CategoryName],BND_ListingCategories。[CatID] from BND_ListingCategories inner join BND_Listing on BND_ListingCategories.CatID = BND_Listing.CatID 其中LID = 1 – Zi0n1

0
select distinct c.CategoryName, l.CatID 
from BND_ListingCategories AS c INNER JOIN BND_Listing as l 
on c.CatID = l.CatID 
ORDER BY CategoryName ASC 

这引起了我的下拉工作。谢谢你们的帮助。让我看在正确的地方!