Mysql 我正在努力解决这个数据库问题

Mysql 我正在努力解决这个数据库问题,mysql,Mysql,嗨,我正在努力解决下面的问题,我已经包括了我已经得到的。问题如下 这就是我所做的 CREATE TABLE casino ( casino_id int, -- a primary key ); CREATE TABLE games ( id int, PRIMARY KEY (id), FOREIGN KEY (casino_id) REFERENCES casinos (id) ON DELETE CASCADE ); CREATE TABLE countries (

嗨,我正在努力解决下面的问题,我已经包括了我已经得到的。问题如下

这就是我所做的


CREATE TABLE casino (
  casino_id int, -- a primary key
);

CREATE TABLE games (
  id int,
  PRIMARY KEY (id),
  FOREIGN KEY (casino_id) REFERENCES casinos (id) ON DELETE CASCADE
);

CREATE TABLE countries (
  id int,
  PRIMARY KEY (id),
  FOREIGN KEY (games_id) REFERENCES games (id) ON DELETE CASCADE
);

Question 2:

SELECT  *
FROM    players   
        LEFT JOIN games 
            ON players.id = games.id AND
                games.type LIKE ‘%SLOT%'
ORDER   BY players.id


SELECT *
FROM players LEFT OUTER JOIN players ON players.id = games.id 
WHERE games.type LIKE '%SLOT%'
ORDER BY players.id ```

这是一种成功的方法

这里的类型只是char,通常类型应该是一个表,这样一个游戏可以有很多类型,但这会使查询更大

id |国家|名称|类型|类型 -: | :----------- | :--- | :--- 2 |巴西|槽|槽 3 |乌拉圭|槽|槽 小提琴


如果您在考虑这一点时遇到困难,只需做一个简单的示例并测试您的想法。

对于这两种关系,您都需要一个连接国家和游戏的表,对于游戏表,赌场需要一个类型列,你在报告中描述的select@nbk我不明白我也需要一张玩家表吗?你还需要一张玩家表,但你不允许在不同的赌场玩一场游戏,你想如何将游戏a链接到澳大利亚、埃格兰、巴西第二场澳大利亚,巴西和urguay@nbk好的,谢谢你,玩家表与哪个表有一对多的关系?与国家一对多的关系,这决定了他可以玩哪些游戏,例如吃角子老虎机,但是最喜欢的类型有问题,所以你还必须有一个类型表的链接,该类型表也被游戏引用,谢谢你,我真的很感激。建议注意到。好的,如果是作业,最好删除它,大多数老师都在这里。好的,我会的。我可能会删除它
CREATE TABLE countries (
  id int,
  Country_name CHAR(20),
  PRIMARY KEY (id)
);
CREATE TABLE players (
  id int,
  ref_country_id INT,
  type CHAR(50),
  PRIMARY KEY (id),
  FOREIGN KEY (ref_country_id) REFERENCES countries (id) 
);

CREATE TABLE games (
  id int,
  name char(50),
  type CHAR(50),
  PRIMARY KEY (id)
);

CREATE TABLE rel_country_games (
  ref_country_id int,
  ref_games_id INT,
  FOREIGN KEY (ref_country_id) REFERENCES countries (id),
  FOREIGN KEY (ref_games_id) REFERENCES games (id)
);


CREATE TABLE casino (
  casino_id int,
  casino_name char(100),
  PRIMARY KEY (casino_id)
);

CREATE TABLE rel_country_games (
  ref_casino_id int,
  ref_games_id INT,
  FOREIGN KEY (ref_casino_id) REFERENCES casino (casino_id),
  FOREIGN KEY (ref_games_id) REFERENCES games (id)
);
INSERT INTO countries VALUES(1,'Brasil'),(2,'Uruguay'),(3,'MExico')
INSERT INTO players VALUES(1,1,NULL),(2,1,'SLOT'),(3,2,'SLOT'),(4,3,'POKER')
INSERT INTO games VALUES(1,'slotgame1','SLOT'),(2,'slotgame2','SLOT'),(3,'poker','POKER');
INSERT INTO rel_country_games VALUES(1,1),(1,2),(2,2),(2,3),(3,1),(3,3)
    SELECT DISTINCT p.id,c.Country_name,p.type,g.type
    FROM players p INNER JOIN countries  c ON c.id = p.ref_country_id 
    INNER JOIN rel_country_games rcg ON c.id = rcg.ref_country_id
    INNER JOIN games g ON rcg.ref_games_id = g.id AND g.type = p.type
    WHERE p.type = 'SLOT'
    ORDER BY p.id 
id | Country_name | type | type -: | :----------- | :--- | :--- 2 | Brasil | SLOT | SLOT 3 | Uruguay | SLOT | SLOT