我有四个表:如何创建这样的查询?
- 锦标赛(ID,姓名,插槽,价格,游戏ID,platformId)
- 游戏(ID,姓名)
- 平台(ID,姓名)
- 参股( id,tournamentId,playerId)
我想得到锦标赛的游戏名称,平台名称,插槽,价格,reservedSlots(参与计数),某些玩家(他的id是否由php提供)在本次比赛(布尔/真)和条件是: - 游戏ID必须是由PHP 提供特定的阵列 - platformId必须采用PHP
我创建了这样的事情提供指定数组,但它不工作正确:
PHP:
$platformsList = "'". implode("', '", $platforms) ."'"; //
$gamesList = "'". implode("', '", $games). "'";
的mysql:
SELECT
t. NAME AS tournamentName,
t.id,
t.slots,
p. NAME,
g. NAME AS gameName,
t.price
FROM
tournaments AS t,
platforms AS p,
games AS g,
participations AS part
WHERE
t.PlatformId = p.Id
AND t.GameId = g.Id
AND t.Slots - (
SELECT
count(*)
FROM
participations
WHERE
TournamentId = t.id
) > 0
AND part.TournamentId = t.Id
AND t.PlatformId IN ($platformsList)
AND t.GameId IN ($gamesList)
什么不行?错误日志?查询是否在mysql工作台中工作,即查询是否有效 – ChelseaStats 2014-11-05 08:15:00
什么是错误的?你没有输出,或输出错误? – Gudgip 2014-11-05 08:15:11
有输出,但它不是我想要的。它返回尽可能多的记录,因为参与者存在参与 – Lukas 2014-11-05 08:24:22