When you say
SELECT * FROM ...
You are telling SQL to select all the columns from the source, and return them.
You are selecting all rows from all three tables and returning them! So you are getting exactly what you are asking for...
If you want less, then specify less:
SELECT tblStockDetails.sdDocType, tblStockHeader.shPartyID, tblStockHeader.shDocumentDateTime FROM ...