I had to create an addressbook application connecting a database to a java gui. I'm working on my search button right now and almost got it but cant figure out how to connect all four tables. I need to search by a last name and then I want it to show all related information from that person.

So far this is what I have and it seems to be working but when I try to INNER JOIN emailAddresses and phoneNumbers I get a syntax error.
resultSet =
statement.executeQuery( "SELECT * FROM names INNER JOIN addresses ON names.personID = addresses.personID WHERE lastName LIKE '%" + last + "%' ");
resultSet.next();
jTextField1.setText(resultSet.getString("firstName"));
jTextField2.setText(resultSet.getString("lastName"));
jTextField3.setText(resultSet.getString("address1"));
jTextField4.setText(resultSet.getString("address2"));
jTextField5.setText(resultSet.getString("city"));
jTextField6.setText(resultSet.getString("state"));
jTextField7.setText(resultSet.getString("zipcode"));
jTextField8.setText(resultSet.getString("phoneNumber"));
jTextField9.setText(resultSet.getString("emailAddress"));
You'll need to add brackets and use * rather than % as the wildcard.
I haven't tested, but this should work:
"SELECT *
FROM ((names INNER JOIN addresses ON names.personID = addresses.personID)
INNER JOIN emailadresses ON names.personID = emailadresses.PersonID)
INNER JOIN PhoneNumbers ON names.PersonID = PhoneNumbers.PersonID
WHERE lastName LIKE '*" & last & "*'"
Saying it should work - remember to escape the apostrophe in any last name.
Escaping ' in Access SQL
SELECT * FROM names A
INNER JOIN address B ON A.personID = B.personID
INNER JOIN emailAddress C ON A.personID = C.personID
INNER JOIN phoneNumbers D ON A.personID = D.personID
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With