是否有更好/更有效的方法来执行此SQL查询?

时间:2014-10-09 08:43:44

标签: mysql sql

目前我正在使用查询:

SELECT * from budget where CentreID = (SELECT CentreID from budget where BudgetID = "?");

它按原样运行,但是我想知道是否有任何方法可以提高效率,或者如果不使用连接则在这种情况下是不好的做法。

感谢。

2 个答案:

答案 0 :(得分:2)

如果您的查询正常,我假设您的子查询只返回一行。这意味着budgetID对应于一个且仅对应一个centerID。 如果是这种情况,您可以使用此查询:

SELECT * from budget where BudgetID = "?";

如果可以将budgetID分配给多个centerID,则您的查询应该是这样的:

SELECT * from budget where CentreID IN 
(SELECT CentreID from budget where BudgetID = "?");

希望这有帮助

答案 1 :(得分:0)

您可以使用此查询:

SELECT * from budget where CentreID IN (SELECT CentreID from budget where BudgetID = "?");

OR

SELECT a.* 
from budget as a
JOIN
(
SELECT CentreID 
from budget 
where BudgetID = "?"
) as b ON a.CentreID = b.CentreID