First option:
SELECT Table1.* ,Table2.Price AS Price
FROM
Table1,Table2
WHERE
Table1.ID = Table2.ID
Second option:
SELECT Table1.* ,Table2.Price AS Price
FROM
Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID
Which one is better and most efficient?
It may give you the same results, however the second option is better because it follows the latest standards, and properly defines what is the join and what may be a where clause. In terms of performance the two statements as above should perform the same.