【发布时间】:2019-05-29 05:10:05
【问题描述】:
各位 php 初学者来了 :)
我知道我的问题被问了很多,但我阅读了 20 多个答案,其中大多数不适用于我的查询,我的查询很简单,但我不知道为什么不适合我 :( ,
我有 2 个表:
1- USERS : (id,username,country,status) 主键是 id 而外键是 country
2- 国家 (country_id,country_en,country_code) 主键是country_id
当我将数据插入国家表并将数据插入用户时,一切都很好并且相互连接!
但是当我来查询部分时,这是我的问题: 这里一切正常! 但是国家/地区输出值是 ID,我希望它是它的名称,因为 country_en 具有名称值
$sql = "SELECT * FROM `users`
WHERE `users`.`status` = 'active'
ORDER BY RAND() LIMIT 10 ";
在阅读了许多问题的答案后,我尝试添加 UNION、LEFT JOIN 等。但仍然一样,我从我的问题中知道了问题,我将从我的错误中吸取教训 我试图解决这个问题的最终查询
$sql = "SELECT *
FROM `users` WHERE `users`.`status` = 'active'
INNER JOIN `countries` ON `users`.`country` = `countries`.`country_en`
ORDER BY RAND() LIMIT 10 ";
你们能帮我吗:(
【问题讨论】:
-
country_en字段是什么?你 JOIN 使用这个字段,我想它一定是:INNER JOIN countries ON users.country = countries.country_id -
-
您是否应该加入
countries.country_id而不是countries.country_en?你应该展示一些数据来帮助我们可视化这个问题,它有点不清楚。 -
给我们一个来自目标表和连接表的表数据示例。如果您想按名称而不是 id 返回
country的数据,我们将需要从每个表中查看一个表行,以便我们知道如何帮助您制定查询 -
@ThomasG 谢谢你,我会拍两张桌子的照片并把它插在这里可能有帮助吗????
标签: php sql mysqli inner-join