SQL查询 - c#数据库连接(DataGrid)

时间:2014-10-11 21:40:34

标签: mysql sql sql-server

我试图通过SQL查询从2个表中获取信息..

SELECT Num_of_icon, ID_Radar, ID_Observer,
       Longitude_Impact_point, Latitude_Impact_point,
       Longitude_Impact_point_By_Cutting, Latitude_Impact_point_By_Cutting,
       Deviation_In_Meters,
       Longitude_Deviation, Latitude_Deviation,
       Longitude, Latitude, Azimuth
FROM ShowTable, Observer
ORDER BY Num_of_icon ASC

Num_of_icon是一个表格中的关键字 ID_Observer是第二个表格中的键第一个表格中的字段。

错误是:

  

字段' ID_Observer'应该显示在多个表中。

我不明白这个错误是什么。我知道ID_Observer显示的不止是一个表,这就是我在表之间建立联系的原因......

2 个答案:

答案 0 :(得分:1)

如果两列中存在列,则必须使用tablename.columnname限定列。您还必须通过JOIN链接两个表:

SELECT Num_of_icon, 
       ID_Radar, 
       SHowTable.ID_Observer, --<<< HERE
       Longitude_Impact_point, 
       Latitude_Impact_point, 
       Longitude_Impact_point_By_Cutting, 
       Latitude_Impact_point_By_Cutting, 
       Deviation_In_Meters, 
       Longitude_Deviation, 
       Latitude_Deviation, 
       Longitude, 
       Latitude, 
       Azimuth 
FROM   ShowTable 
INNER JOIN Observer 
    ON ShowTabl.ID_Observer = Observer.ID_Observer  --<<< and HERE
ORDER  BY Num_of_icon ASC 

答案 1 :(得分:0)

查询处理器不知道它应该采用哪个ID_Observer字段(并且它不会努力确定它们是否总是相同的值,无论它从哪个表中获取它)。因此,您必须指定此项,即以下内容将采用ID_Observer表中的Observer值:

"SELECT Num_of_icon,ID_Radar,Observer.ID_Observer,Longitude_Impact_point..."