【发布时间】:2019-02-05 13:02:16
【问题描述】:
我在使用 mysqli 表时遇到了一个奇怪的问题。我有一个表,其中有一些记录。我正在执行以下查询
SELECT * FROM `users` WHERE
EXISTS (
SELECT *
FROM `games`
INNER JOIN `users_games`
ON `games`.`id` = `users_games`.`game_id`
WHERE
`users`.`id` = `users_games`.`user_id` AND `game_id` = 10
)
AND `users`.`id` = 10
LIMIT 12;
在users_games 表中,user_id = 10 有 11 行 (1 to 13)。上述查询适用于所有人
`game_id` = 10 /* it is working */
当我尝试执行game_id= 1 时,它没有显示记录,但是game_id= 1 有一行。
在它下面users_games桌子
【问题讨论】:
-
这个问题与 PHP/mysqli 有关吗?如果是,请添加相关代码。您正在使用
game_id= 1或game_id= 10? -
您只向我们展示了
users_games表,但您的SQL 查询又查询了两个表,users和games。请从您的 SQL 查询中删除这些表,或者向我们展示这两个表中的代表性行。另外,请edit您的帖子并将表格行发布为文本,而不是屏幕截图。 -
SQL 表/结果集根据定义是 无序 .. 在 MySQL 中使用
LIMIT而不使用ORDER BY是无意义,并且可能导致不同的结果即使每次运行相同查询时数据都相同 -
user_id = 1 没有 game_id = 10 它有 game_id= 1
-
有人可以指导我为什么会有反对票吗?我尽力解释我面临的问题