gpt4 book ai didi

sql - 仅当子表中的多行匹配时才从父表中选择行

转载 作者:行者123 更新时间:2023-12-03 21:36:18 24 4
gpt4 key购买 nike

我通过将信息保存在数据库中来构建一个学习井字游戏的代码。
我有两张 table ,Games(ID,Winner)Turns(ID,Turn,GameID,Place,Shape) .
我想通过多个 child 信息找到 parent 。
例如:

SELECT GameID FROM Turns WHERE
GameID IN (WHEN Turn = 1 THEN Place = 1) AND GameID IN (WHEN Turn = 2 THEN Place = 4);

这样的事情可能吗?
我正在使用 ms-access。

Turm - Game turn
GameID - Game ID
Place - Place on matrix 1=top right, 9=bottom left
Shape - X or circle



提前致谢

最佳答案

这个非常简单的查询将在一次扫描中完成,并且不需要您违反 第一范式 通过在字符串中存储多个值(颤抖)。

SELECT T.GameID
FROM Turns AS T
WHERE
(T.Turn = 1 AND T.Place = 1)
OR (T.Turn = 2 AND T.Place = 4)
GROUP BY T.GameID
HAVING Count(*) = 2;

正如其他答案所建议的那样,无需加入即可确定此信息。

请在您的数据库中使用正确的数据库设计原则,并且不要将多个值一起存储在一个字符串中违反第一范式!

关于sql - 仅当子表中的多行匹配时才从父表中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35466189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com