2017-05-20 5 views
0

habe ich eine Ansicht als eine Integration von drei Tabellen, aber wenn ich die Daten in der Ansicht mit Abfrage abrufen ... stoppt das System arbeitetAbfrage für Daten aus dem Blickfeld Abrufen funktioniert nicht

ich eine Ansicht dies mit query:

PreparedStatement statement1 = (com.mysql.jdbc.PreparedStatement) con1.prepareStatement(" 
CREATE VIEW mcps1_patients_view AS 
SELECT a.PatientID 
    , PatientGender 
    , PatientDateOfBirth 
    , PatientMaritalStatus 
    , a.Ad_ID 
    , Ad_StartDateAndTime 
    , Ad_EndDateAndTime 
    , d.ICD10CM_Code 
    , d.PrimaryDiagnosisDescription 
    From patientcorepopulatedtable p 
    JOIN admissionscorepopulatedtable a 
    JOIN admissionsdiagnosescorepopulatedtable d 
"); 
result1 = statement1.execute(); 
System.out.print("connected"); 

und ich möchte eine Abfrage auf die erstellte Ansicht machen ...

PreparedStatement statement4 = (com.mysql.jdbc.PreparedStatement) con2.prepareStatement(" SELECT * From mcps2_patients_view where P_ID= ? "); 
    statement4.setString(1, Hospital2_id); 
    result4 = statement4.executeQuery(); 
    System.out.print("connected \n") 

aber die letzte Abfrage funktioniert nicht sein aufgehört zu arbeiten

, was das Problem ist ??? und wie kann ich es lösen?

+0

Es gibt also keine Beziehung zwischen diesen Tabellen? – Strawberry

+0

Sie erstellen eine Ansicht mit dem Namen mcps1_patients_view und die Abfrage von mcps2_patients_view, und die Spalte P_ID wird ebenfalls nicht deklariert. Sind Sie sicher, dass es sich um die richtige Ansicht handelt? –

Antwort

0

Ich denke, dass Sie einige Dinge verwirren, sollte die Abfrage sintax, die Sie bei der Erstellung der Ansicht übergeben werden, native SQL sein. Vom javadoc

Erstellt ein PreparedStatement-Objekt für

in die Datenbank parametrisierte SQL-Anweisungen zu senden Was Sie klebte dort JPQL zu sein scheint. Die SQL Join-Anweisung benötigt außerdem den ON-Teil, um anzugeben, in welcher Spalte die Verknüpfung ausgeführt wird. Etwas wie: SELECT... FROM patient p join patient_admission pa on pa.patient_id = p.id

Ist das ein Tippfehler? Ich erwarte, dass der Code, der die Ansicht erstellt, eine Ausnahme darstellt.

+0

@monaalhumud, warum erstellen Sie die Ansicht von Java? Normalerweise erstellen Sie die Ansicht von einem Datenbankclient und verwenden dann den Namen der Sicht in Java – GabiM

0

vielen Dank für Ihre Antwort ..

was ist die korrekte Syntax für das Erstellen einer Ansicht ??

Verwandte Themen