Múltiplos SELECT com <%=rs.getString...%>[Resolvido]

Estou tentando juntas 2 consultas de tabelas diferentes com colunas
totalmente diferentes e não consegui.

Já tentei

SELECT c.coluna1, c.coluna2, b.coluna1, b.coluna2 FROM colun1 as c, colun2 as b;

e não deu certo.

O que tenho que fazer?

Obrigado.

Usa JOINs…

SELECT c.coluna1, c.coluna2, b.coluna1, b.coluna2 FROM colun1 as c JOIN colun2 as b ON (c.coluna1 = b.coluna1)

Tenta aí…

PK da tabela X = FK da tabela Y:

SELECT a.campo1, a.campo2, a.campo3, b.campo1, b.campo2
FROM tabela1 a, tabela2 b
WHERE a.campoPK = b.campoFK

Isso deve te ajudar.

Abraços,

[quote=pimenta]PK da tabela X = FK da tabela Y:

SELECT a.campo1, a.campo2, a.campo3, b.campo1, b.campo2
FROM tabela1 a, tabela2 b
WHERE a.campoPK = b.campoFK

Isso deve te ajudar.

Abraços,[/quote]

Veja, eu já utilizei as maneiras propostas por vocês antes. Aliás já vi no IMasters mas só dá certo no próprio banco de dados…

A aplicação responde diferente, então acho que o erro é no retorno entre as tags JSP.

Vamos ao código:

[code]<%@page language=“java” import=“schema.conect001”%>
<%@page import=“java.sql.*”%>

<%

Connection conn = null;
ResultSet rs = null;
Statement stmt = null;

try {
stmt = conn.createStatement();

String sql = "SELECT b.introd, b.frase_introd, t.codTopic, "+
        " t.titleTopic, t.conteudoTopic FROM banner as b, tableTopic as t;";
rs = stmt.executeQuery(sql);

rs.next();

%>[/code]

Este foi o código que utilizei pra “chamar” os dados das duas tabelas, reparem que dá certo no MySql e não na aplicação. (NullPointerException na aplicação_.

continuando:

[code]

<%=rs.getString(“introd”)%>

<%=rs.getString("frase_introd")%>
<%=rs.getString("titleTopic")%>
<%=rs.getString("conteudoTopic")%>

<%
} catch(SQLException sqlex2) {
out.println("Erro:
"+sqlex2);
}
%>[/code]

Bom, gera NullPointerException desta maneira, então
gostaria de saber como realizar a múltipla consulta corretamente.

Obrigado.

se for EXATAMENTE esse código que vc postou, talvez falte atribuir uma conexão para o objeto conn :lol:

Desculpa me intrometer, não sei exatamente qual sua necessidade de fazer isso direto na JSP, mas não vale mais a pena você fazer isso numa classe e setar o atributo pra JSP? Assim você só trataria o objeto ResultSet.

E é possível que seja isso que o amigo de cima falou. Parece que você não está criando a conexão com o banco. Você pode tentar debugar com alguma IDE pra saber exatamente onde está o erro.

Abraços,

Opa, esqueci de postar a conexão.

eu importei a conexão sim, vejam:

<%@page language="java" import="schema.conect001"%> <%@page import="java.sql.*"%>

aqui está ela:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package schema;

import java.sql.*;

public class conect001 {

public conect001() {

Connection conn = null;    
    
try {
String driverName = "org.gjt.mm.mysql.Driver";  // também poderia ser com.mysql.jdbc.Driver
Class.forName(driverName);

String serverName = "localhost";
String mydatabase = "banco";

String url = "jdbc:mysql://" +serverName+ "/" +mydatabase;
String username = "user";
String password = "pass";
conn = java.sql.DriverManager. getConnection(url, username, password);

} catch(ClassNotFoundException cnfex) {
System.out.println(“Não foi possível encontrar o driver”+cnfex.toString());
} catch (java.sql.SQLException sqlex) {
System.out.println(“Erro ao conectar-se ao banco de dados”+sqlex.toString());
}

}

}[/code]

Olá a todos.

Passei aqui pra dizer que já resolvi o problema.

A tabela do segundo SELECT estava com campos nulos, ou seja, eu ainda não havia preenchido com dados.
O SELECT que eu havia postado resolveu após eu preencher manualmente a 2a tabela.
Da próxima vez vou atribuir valores default à todos os campos da tabela.

Obrigado pela ajuda.

Em 2008 programando assim?