Help with JOINs in request

SELECT * FROM Table_A LEFT JOIN Table_B ON (Table_A.A_ID = Table_B.A_ID) INNER JOIN Table_C ON (Table_C.C_ID = Table_B.C_ID) WHERE Table_A.ID = 3 

This returns 0 rows, currently.

How can I configure this, so I always get Table_A, even if there is no row for Table_B or Table_C. I still want to maintain an INNER JOIN between Table_B and Table_C, so I will never get B without C.

+4
source share
2 answers

Interrogate table B and table C. for example

 SELECT * FROM Table_A LEFT JOIN (SELECT * FROM Table_B INNER JOIN Table_C ON (Table_C.C_ID = Table_B.C_ID) ) B_AND_C ON (Table_A.A_ID = B_AND_C.A_ID) WHERE Table_A.ID = 3 
+2
source

You may not have to use the built-in view. I'm not in front of a machine with MySQL right now, so I can’t check, but you can try

 SELECT * FROM table_A a LEFT JOIN (table_B b INNER JOIN table_C c ON b.c_id = c.c_id) ON a.b_id = b.b_id WHERE a.a_id =3 
+2
source

All Articles