Relationship between stock and product I have a database should store sales, I created a table for products and one more table for stock I felt the relationship between them is many-to-many because a product in one stock may have different price from another stock, and one stock can have many products, so I created another table for create a relationship between these two tables by name of Stock_Product, but Now I fell it is wrong, because every time when I want to query from Sales table which contains the sales records I need to join 4 tables for selecting the details of product and stock.
So a single product can potentially have multiple prices at once? If this is the case then I don't see the need for the extra table. Create the products table, including product name, description plus whatever else you need. Then create the stock table, with a FK relationship to the products table product ID with quantity and price per unit. When a sale is made it can take the price from the stock table and enter it as a sale price in the sales table and update the quantity in the stock table. 

The only thing that isn't clear is where you said a stock can have multiple products. The above seems to be a better method of handling this rather than having a product with multiple stock records and stock records with multiple products.