2行中的SQL查询 - 如何?

时间:2009-06-08 11:06:17

标签: php sql

以下错误,所以一定是错的,但这样做的正确方法是什么:

$query = "SELECT * FROM tblProducts WHERE ProductId ='$SCId' AND SELECT * FROM tblProducts WHERE Cat ='$CatType' AND Type ='$TypeType'";

$ rsPrimary = mysql_query($ query)     或者死(“查询'$查询'失败,错误消息:\”“。mysql_error()。'”'); $ NUM = mysql_numrows($ rsPrimary); mysql_close();

4 个答案:

答案 0 :(得分:7)

    SELECT * FROM tblProducts WHERE ProductId ='$SCId' 
                                  OR (Cat ='$CatType' AND Type ='$TypeType')

答案 1 :(得分:2)

让我觉得你真正想要的是:

select * from tblProducts
where ProductId ='$SCId'
or ( Cat ='$CatType' AND Type ='$TypeType' )

答案 2 :(得分:1)

WHERE子句中的“AND”语句期望右侧有条件。你不能在那里放置SELECT查询。

答案 3 :(得分:0)

已经给出的答案对于您的查询是正确的,但是如果将来要将两个或多个select语句的结果附加在一起,则应该查看UNION或UNION ALL。因此,如果您更换了第一个和UNION,原始查询将起作用 UNION从结果中删除重复项,UNION ALL不会,因此更快。