[英]sql query not returning non-unique value in table
我有一个MySQL数据库供投资者跟踪他的投资:
我想编写一个查询,允许用户从特定asset_class下的“更新”中选择所有更新。 但是,如上所述,asset_class在投资表中。 我写了以下查询:
SELECT *
FROM updates
WHERE updates.invest_name IN (SELECT deal.deal_name
FROM deal
WHERE deal.asset_class = '$asset_class'
);
我正在使用PHP,因此$asset_class
是$asset_class
的选定变量。 但是,该查询仅返回唯一的更新名称,但是我希望查看给定asset_class的所有更新,即使在一个投资名称下进行了多个更新也是如此。 有什么建议吗? 谢谢!
您的查询应该按照您的意图进行。 但是,一般而言,此类查询将使用JOIN
编写。 更重要的是,使用参数占位符而不是查询字符串:
SELECT u.*
FROM updates u JOIN
deal d
ON u.invest_name = d.deal_name
WHERE d.asset_class = ?;
这可以利用deal(asset_class, deal_name)
和updates(invest_name)
上的索引。
?
表示您在运行查询时传递给查询的参数。 确切的语法取决于您如何进行呼叫。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.