0

次のような別のテーブルでリンクされた 2 つのテーブルがあります。

ROLES(RoleID, RoleName)
EMPLOYEES(EmployeeID, E_Name, Address)
ROLE_EMPLOYEES(RoleID#,EmployeeID#).

EMPLOYEES からすべてを取得し、ROLES から RoleID を取得して Java フォームに表示するクエリが必要です。

私はこれを試しましたが、うまくいきません:

rs=st.executeQuery("SELECT EMPLOYEES.*, ROLES.* FROM EMPLOYEES JOIN ROLES");               

while(rs.next()){
    //MOVE THE CURSOR TO THE FIRST RECORD AND GET DATA
    int employeeid=rs.getInt("EmployeeID");
    String id=Integer.toString(employeeid);
    String name=rs.getString("E_Name");
    String addr=rs.getString("Address");
    String s = rs.getString("RoleID");
    jComboBox1.addItem(s.trim());

    //DISPLAY THE FIRST RECORD IN THE TEXT FIELD
    txtEmpNumber.setText(id);
    txtEmpName.setText(name);
    txtEmpAddress.setText(addr);
    jComboBox1.setSelectedItem(s);
}
4

1 に答える 1

2

これを試すことができます:

SELECT
   EM.*, RL.*
FROM
   EMPLOYEES EM
INNER JOIN
   ROLE_EMPLOYEES REM ON REM.EmployeeID = EM.EmployeeID
INNER JOIN
   ROLES RL ON RL.RoleID = REM.RoleID

キーワードを記述するだけではJOIN、db-engine はテーブルのデータをどのように結合する必要があるかわかりません。デカルト積を取得したい場合を除き (それはあなたの場合ではありません)、ON句を使用して明示的に条件を設定する必要があります。

于 2012-09-07T00:10:10.340 に答える