2013-01-03 29 views
1
CREATE TABLE "Employer" (
     "employerID" INT PRIMARY KEY NOT NULL, 
     "name" CHAR, 
     "industry" CHAR, 
     "contact1" CHAR, 
     "contact2" CHAR, 
     "email" CHAR, 
     "website" CHAR, 
     "facts" CHAR, 
     "phone" VACHAR 
     ) 

CREATE TABLE "Job" (
     "jobID" INT PRIMARY KEY NOT NULL, 
     "employerID" INT, 
     "title" CHAR, 
     "description" CHAR, 
     "type" CHAR, 
     "salary" CHAR, 
     "benefits" CHAR, 
     "vacancies" INT, 
     "closing" CHAR, 
     "requirement" CHAR, 
     "placement" BOOL, 
     "applyTo" CHAR, 
     "notes" CHAR, 
     FOREIGN KEY (employerID) REFERENCES Employer(employerID) 
     ) 

选择值我期待从数据库中获取值,并将其设置为JLabel文字,但我不知道什么时候foreign键所涉及的SQL语句。 SQL语句应该是SELECTJob表中除employerID之外的所有值,并使用外键employerID来获取公司的name ...可以anoyone告诉我正确的sql语句为此..我想显示这样的信息例如:从相关表在MySQL

分析师 - MICROSOFT

作业ID:4545454 说明:干得好 电子邮件:[email protected] 电话:45545

,但不知道如何显示MICROSOFT

public void setText() { 
    try { 
    String sql = "SELECT a.*, b.name FROM Employer a INNER JOIN `Job` b ON a.employerID = b.employerID"; 
    pst = conn.prepareStatement(sql); 
    rs = pst.executeQuery(); 
    while (rs.next()) { 

     System.out.println(rs.getString(1)); //how Do i Print the name value from Employer table?? 
     System.out.println(rs.getString(2)); 
     System.out.println(rs.getString(3)); 
     System.out.println(rs.getString(4)); 
     System.out.println(rs.getString(5)); 
     System.out.println(rs.getString(6)); 
    } 


} 

如何打印EMployer表中的name值以及Job表中的所有数据?

回答

1

一个简单的连接可能会完成这项工作。

SELECT a.*, b.*  // -- SELECT the columns you want to display 
         // -- eg b.Title 
FROM Employer a 
     INNER JOIN `Job` b 
      ON a.EmployerID = b.EmployerID 
+0

在你的上述代码中,你认为'a'是什么? – Hoody

+1

'a'被称为表'Employer'的'ALIAS',所以写'Employer'可以写'a'。 –

+0

我期待将它们添加到Java中的JLabel,例如'id.setText(rs.getString(1))'将工作吗? – Hoody