Mysql 查询 - 帮助从 2 个表中获取数据
Mysql query - help getting data from 2 tables
我可以处理简单的 mysql 东西,通常只有一个 tables,但我正在处理/修改脚本以从具有 2 tables 的数据库中提取游戏成就.. 这是一次访问两个 tables .. 所以我有点迷茫。我可以理解下面的行:
SELECT * FROM achievables
WHERE gameid = '1'
AND achievementid IN
(
SELECT achievementid
FROM achievements
WHERE userid = '1111'
AND gameid = '1'
)
这几乎是完美的..但是我想要的是也从那第二个 table 中获取 DATE 字段..我本以为这是一个简单的 achievementid, date - 但那并没有拉任何记录,也不会在第二部分使用 SELECT *..
您需要加入表格
SELECT a1.*, a2.date
FROM achievables a1
JOIN achievements a2 on a1.achievementid = a2.achievementid
and a1.gameid = a2.gameid
WHERE a1.gameid = '1'
AND a2.userid = '1111'
您只需要简单地使用 JOIN 而不是 IN
试试这个:
SELECT *
FROM achievables A
INNER JOIN achievements B ON A.achievementid = B.achievementid AND A.gameid = B.gameid AND B.userid = '1111'
WHERE A.gameid = '1';
我可以处理简单的 mysql 东西,通常只有一个 tables,但我正在处理/修改脚本以从具有 2 tables 的数据库中提取游戏成就.. 这是一次访问两个 tables .. 所以我有点迷茫。我可以理解下面的行:
SELECT * FROM achievables
WHERE gameid = '1'
AND achievementid IN
(
SELECT achievementid
FROM achievements
WHERE userid = '1111'
AND gameid = '1'
)
这几乎是完美的..但是我想要的是也从那第二个 table 中获取 DATE 字段..我本以为这是一个简单的 achievementid, date - 但那并没有拉任何记录,也不会在第二部分使用 SELECT *..
您需要加入表格
SELECT a1.*, a2.date
FROM achievables a1
JOIN achievements a2 on a1.achievementid = a2.achievementid
and a1.gameid = a2.gameid
WHERE a1.gameid = '1'
AND a2.userid = '1111'
您只需要简单地使用 JOIN 而不是 IN
试试这个:
SELECT *
FROM achievables A
INNER JOIN achievements B ON A.achievementid = B.achievementid AND A.gameid = B.gameid AND B.userid = '1111'
WHERE A.gameid = '1';