2013-03-01 62 views
-2

试图从两个表中选择,但我的代码不起作用!从MYSQL的两个表中选择?

这是我的代码:

("SELECT * FROM products, productsmore WHERE brand='$brand' AND brand='$brand'"); 

什么是这样做的正确方法是什么?

感谢

+0

可以使用连接查询了点。 – 2013-03-01 12:03:27

+2

定义'dosen't工作!'。 – Rikesh 2013-03-01 12:03:35

+0

@ Rikesh,如果你低估了questin,那么没有理由,没有工作意味着不起作用!如果CAR不运行,他们会说它不起作用!如果一支笔不写就意味着它不起作用。所以在这种情况下,脚本不会做它应该做的事情,这就是吐出所需的信息,这意味着它不起作用。 – user2056633 2013-03-01 12:06:43

回答

0

的语法JOIN表将是:

SELECT * 
FROM products 
INNER JOIN productsmore 
    on products.brand = productsmore.brand 
WHERE products.brand='$brand' 

INNER JOIN将返回匹配两个表中的所有行。如果您需要帮助学习JOIN语法,这里是一个很棒的visual explanation of joins

正如您所看到的,我加入brand列的表格,但如果您有另一列可以加入表格,则可以更改此列。如果您加入brand,由于您传递的是值,因此这些值相同,因此您只需在其中一个表上使用WHERE子句。

1

使用加入:

"SELECT * FROM products 
    INNER JOIN productsmore ON productsmore.pid = products.pid 
    WHERE brand='$brand' AND brand='$brand'" 

REF:http://dev.mysql.com/doc/refman/5.0/en/join.html

+0

LEFT JOIN与两种选择都不相同,在这种情况下应该使用INNER JOIN。 – Shehabix 2013-03-01 12:04:42

+1

编辑代码请现在检查 – 2013-03-01 12:05:46

0
"SELECT t1*,t2.* FROM products as t1 join productsmore as t2 WHERE t1.brand='$brand' AND t2.brand='$brand'" 

因为你必须使用联接查询从两个或多个表中选择记录。

0

您应该使用JOINWHERE子句连接表中彼此相关的2列。对于WHERE子句(不与数据复制的原因Recomended)

例如

SELECT * FROM products, productsmore 
WHERE product.productsmore_id = productsmore.id 

示例JOIN

SELECT * FROM products 
INNER JOIN productsmore ON product.productsmore_id = productsmore.id