gpt4 book ai didi

mysql - 在 MySQL 中相交等效

转载 作者:行者123 更新时间:2023-11-29 01:58:10 24 4
gpt4 key购买 nike

我在 MySql 中有两个查询

  1. SELECT DISTINCT Game.mID
    来自游戏,老虎机游戏
    WHERE Game.gID=SlotGame.gID

  2. SELECT DISTINCT Game.mID
    来自游戏, table 上游戏
    WHERE Game.gID=TableGame.gID

我需要将这两个查询的结果相交。

表格如下:

游戏(gID为主键): Game Table with gID as Primary Key老虎机游戏: SlotGame Table with gID as Primary Key

table 上游戏: enter image description here

我预期的答案应该是 mID: 01注意:SlotGame 和 TableGame 将具有唯一的 gID 值

最佳答案

您可以使用两个不同的别名通过Game 表加入两次,其中加入条件是mID 相等。前提是每个游戏类型表(Slot,Table)仍然加入Game并返回一个mID。结合起来,它们将是 mID 的超集,但如果您对它们执行 INNER JOIN,任何不常见的将从集合中丢弃。您是 SELECT gt.mID 还是 SELECT gs.mID 都没有关系,因为连接两侧的剩余值相同。

SELECT DISTINCT
gt.mID
FROM
Game gs
/* join Game to itself */
INNER JOIN Game gt ON gs.mID = gt.mID
/* and join each of the other tables to one of the Game joins */
INNER JOIN SlotGame ON gs.gID = SlotGame.gID
INNER JOIN TableGame ON gt.gID = TableGame.gID

这是一个包含您的行的示例:http://sqlfiddle.com/#!2/f57c3d/8

并证明它可以通过增加几行来扩展:http://sqlfiddle.com/#!2/afe66e

关于mysql - 在 MySQL 中相交等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22520586/

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