How to INNER JOIN 4 tables?

ms-access, sql

Solution

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

Problem

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")); ```

Original source

Related problems