正确使用MySQL JOIN

时间:2011-07-30 18:32:07

标签: php mysql

我之前从未使用过JOIN,因此我无法使用PHP正确地进行MySQL查询。

我有一个名为store的表,其中包含行itemid,价格等。我还有一个名为item_list的表,其中包含行ID,属性等。

我希望能够访问“store”itemid并使用它们,访问item_list id和该id的属性。我想出了这样一个查询:

$query = "SELECT store.price, item_list.*  
            FROM store, item_list 
           WHERE item_list.id = store.itemid";

尝试执行查询时出错。有什么建议吗?

3 个答案:

答案 0 :(得分:2)

$query = "SELECT store.price, item_list.*  
            FROM store LEFT JOIN item_list ON item_list.id = store.itemid

此外,您应该明确选择哪些列,而不是*。这是为了安全和性能。

另一个不错的功能是表别名,它使你的SQL不那么冗长:

$query = "SELECT s.price, il.col1, il.col2, il.col3  
            FROM store s LEFT JOIN item_list il ON s.itemid = il.id

答案 1 :(得分:0)

你有一个错字。它应该是

WHERE item_list.id = store.itemid 

你有

WHERE item.id =

答案 2 :(得分:0)

如果您想要使用NULL值排除两个表中的所有行,那么您希望使用INNER JOIN。 LEFT JOIN仅排除连接左侧具有NULL值的行。

$query = "SELECT store.price, item_list.*  
        FROM store INNER JOIN item_list ON item_list.id = store.itemid