Below is the list of tables from the database along with their columns and datatype. Need to generate an accurate SQL query for the question.
Only use the columns present in the respective table. Only use the columns which are required to generate the SQL query. Only use table joins if required and not otherwise.

### Tables ###
TABLE: CREATE TABLE order_items ( order_id VARCHAR, product_id VARCHAR )
TABLE: CREATE TABLE customers ( customer_name VARCHAR, customer_id VARCHAR )
TABLE: CREATE TABLE customer_orders ( customer_id VARCHAR, order_id VARCHAR )
TABLE: CREATE TABLE products ( product_id VARCHAR, product_name VARCHAR )

### Question ###
List the names of all the distinct customers who bought a keyboard.

### Accurate SQL ###

SELECT DISTINCT T1.customer_name FROM customers AS T1 JOIN customer_orders AS T2 ON T1.customer_id = T2.customer_id JOIN order_items AS T3 ON T2.order_id = T3.order_id JOIN products AS T4 ON T3.product_id = T4.product_id WHERE T4.product_name = "keyboard"