Three tables (A, B and C) have the same unique primary key. From an standard SQL efficiency standpoint (not necessarily Microsoft SQL Server, but across the board as in Oracle, SQL Server, DB2, Access, whatever), which is better to use? Multi-Table Join into single Recordset set Results = objConn.Execute("SELECT * FROM TableA A, TableB B, TableC C WHERE A.key = 1 AND B.key = 1 and C.key = 1") * this example would return 1 row only because of the join by unique primary key OR 3 Single Queries into their own Recordsets set Results1 = objConn.Execute("SELECT * FROM TableA WHERE key = 1") set Results2 = objConn.Execute("SELECT * FROM TableB WHERE key = 1") set Results3 = objConn.Execute("SELECT * FROM TableC WHERE key = 1") * this example would have 1 row returned in EACH recordset Assumptions: 1. Primary Key is known up front, it is something like UserID = 1, where other tables are demographic, account settings, etc. 2. I'm not locking the rows either, this example is simply for reading data from the database across tables 3. Table size, indexing, database parameters, etc might be a factor, so using execution plan would show skewed results based on the exact details of my test and I'm looking for more of a general principle than a specific example. 4. I'm looking for something like "It's more efficient to do multi table joins for small table, but if the tables exceed X number of rows, the joins become inefficient, making the single queries the better option"... 5. Unions would put one row per table in the results set and that is not the desired outcome. Desired outcome is recordsets populated with 1 row so all data is accessible at the same time. Also, would having to LEFT OUTER JOIN tables B & C change the answer (because they may not always be populated)? Thank you.