一行中的 2 个 SQL 查询 - 如何?

Posted

技术标签:

【中文标题】一行中的 2 个 SQL 查询 - 如何?【英文标题】:2 SQL queries in one line - how? 【发布时间】:2009-06-08 11:06:17 【问题描述】:

以下错误,所以肯定是错的,但是正确的做法是什么:

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

$rsPrimary = mysql_query($query) or die ("Query '$query' failed with error message: \"" . mysql_error () . '"'); $num=mysql_numrows($rsPrimary); mysql_close();

【问题讨论】:

【参考方案1】:
    SELECT * FROM tblProducts WHERE ProductId ='$SCId' 
                                  OR (Cat ='$CatType' AND Type ='$TypeType')

【讨论】:

【参考方案2】:

在我看来你真正想要的是:

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

【讨论】:

【参考方案3】:

WHERE 子句中的“AND”语句期望其右侧有一个条件。您不能在此处放置 SELECT 查询。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于一行中的 2 个 SQL 查询 - 如何?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 中的查询创建的表中添加一行?

怎么删除sql中一整行的数据

SQL查询不等于空白值如何写

如何通过单击按钮 [C#] 执行 2 个 sql 查询

如何在 SQL 查询中的两行上写属性名称

如何从SQL Server中的重复行中获取最后一行?