关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
两年前关门了。
改进这个问题
我有一张table叫 fixtures
包含以下结构:
id | comp_id | round_id |
1 10 11
2 10 12
3 10 11
我只想得到一个“round\u id”的所有结果,所以最终结果应该是:1、3或2
我提出这个问题:
SELECT *
from fixtures f
LEFT
JOIN rounds r
ON r.id = (SELECT MIN(id) FROM rounds WHERE id = f.round_id)
WHERE comp_id = 10
但这将返回所有可用的赛程记录,我只需要返回一轮赛程,我不知道号码。
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `rounds` (
`id` INT NOT NULL AUTO_INCREMENT,
`round_id` INT NULL,
`season_id` INT NOT NULL,
`name` VARCHAR(255) NULL,
`link` VARCHAR(255) NULL,
PRIMARY KEY (`id`),
ENGINE = InnoDB;
4条答案
按热度按时间5n0oy7gb1#
仅选择具有中使用的最小圆id的装置
fixtures
(不是最小值)id
从rounds
,因为这可能不用于fixtures
!).如果您还想在查询中包含循环数据(我无法判断您是否因为需要循环数据而在查询中有联接,或者这只是因为您尝试进行筛选),那么您可以联接
rounds
.当然
min()
可替换为其他合适的功能(例如。max()
)或者你可以想出一个完全不同的主意如何得到一个单一的round_id
从fixtures
使用。重要的是,它必须正好是一个id,并且必须在fixtures
.3gtaxfhh2#
尝试使用组语句
uelo1irk3#
如果您只需要一条记录,而不在乎是哪条记录,请在查询的末尾附加limit1。
bq3bfh9z4#
所以最终结果应该是:1,3或2
应用
order by
子句将以这种方式获取结果:只返回一个回合的固定装置
给我
where
子句获取单轮的相等条件示例:^返回一列“id”和第1行和第3行,它们与第11个id相关。