有两个表(配置文件和位置)具有共同的ID字段。每个表都驻留在同一服务器上的单独数据库中。我需要显示每个表中的列。配置文件表有50条记录需要与位置表中的50条匹配记录一起显示。这是我的疑问:
SELECT a.id, a.city, b.state FROM profile a JOIN Location b on a.id=b.id
当我运行上述查询时,返回的记录超过50条。当我从查询中删除b.state时,它返回50条记录。当我向查询添加b.state时,有些不对劲。需要返回的50个州应该是根据两者之间的公共ID在“个人资料”表中与每个城市相关的州。
个人资料表数据:
列出项目
个人资料表数据: ID |城 1 | Chicag 2 |迈阿密 3 |底特律
州表数据: ID |国家|人口 1 |伊利诺伊| 10MM 2 |佛罗里达| 20MM 3 |密歇根州| 5MM 4 |弗吉尼亚| 7MM 5 |路易斯安那| 3MM
我想显示Profile表中的所有内容,以及State表中基于ID的匹配项,以显示State和Population列。
答案 0 :(得分:0)
这不是一个答案,只是一个更容易使用的样本数据格式:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: illegal component position
at java.awt.Container.addImpl(Container.java:1085)
at java.awt.Container.add(Container.java:465)
at javaapplication866.JavaApplication866$GradePanel.<init>(JavaApplication866.java:98)
答案 1 :(得分:0)
您需要一个内部联接来过滤掉不匹配(您的示例不详细说明要使用的联接类型):
SELECT a.id, a.city, b.state
FROM [profile] a
INNER JOIN Location b on a.id=b.id
也可能有重复,这意味着你可以试试这个:
SELECT DISTINCT a.id, a.city, b.state
FROM [profile] a
INNER JOIN Location b on a.id=b.id