我有个问题:
$stmt = $conn->prepare(
'SELECT *
FROM table_shots
WHERE idmatch in (
select *
from (
SELECT mc_id
FROM table_matches
WHERE mc_hometeam = '. $idTeam .'
OR mc_awayteam = '. $idTeam .'
ORDER BY mc_date desc
LIMIT '. $num .'
) temp_tab
)'
);
现在我需要给 table_shots
.
表1也有此字段: teamtype
. 此字段可以有两个值: home_team
或者 away_team
.
现在(在我看来)我们需要的是找到一种从第三个Angular 去了解的方法 SELECT
如果 $idTeam
在 mc_hometeam
或者 mc_awayteam
(来自 table_matches
)以添加新条件。
新条件将添加到表中 table_shots
(技术上)像这样: AND teamtype = home_team
(如果 $idTeam
在 mc_hometeam
从 table_matches
)或者 AND teamtype = away_team
(如果 $idTeam
在 mc_awayteam
从 table_matches
).
对此有何建议?
我知道这个很难,让我吃惊;)
1条答案
按热度按时间qyuhtwio1#
为什么不使用简单的连接而不是多个选择?
另外,我建议使用pdo和参数,而不是将$idteam var连接到查询字符串。
编辑:你说得对,限制在错误的地方。乍一看,将两者结合起来应该是可行的。
edit2:下面的第一个查询有效,但在第二个查询中,我将min()放错了位置。第三个也有同样的问题。修好了。
或者这种方法也能奏效,我不确定哪种更好。
当然,你也可以在一个单独的查询中找到mindate。我认为这更具可读性。