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