php - 获取外键值不是 id SQL
问题描述
伙计们 php 初学者在这里 :)
我知道我的问题被问了很多,但是我阅读了 20 多个答案,其中大多数都无法使用我的查询,而且我的查询很简单,但我不知道为什么我无法使用 :(,
我有 2 个表:
1-用户: (id,username,country,status) 主键是id & 外键是国家
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 ";
你们能帮我吗:(
解决方案
感谢你们每一个人试图帮助我,
我想和大家分享我的问题的答案,用最好的方法来获取外键的数据,而不是只用 ID,方法使用“ JOIN ”
minitauros 说: 如果表有不同的列名,则JOIN有效。在最终查询下方
SELECT `users`.`id`, `users`.`username`, `users`.`country`, `users`.`status`, `countries`.`country_id`, `countries`.`country_en` FROM `users` JOIN `countries` ON `users`.`id` = `countries`.`country_id` WHERE `users`.`id` = 1
在查询的 ON 部分,您告诉查询第一个表中的哪一列与第二个表中的哪一列相匹配。
归功于minitauros
推荐阅读
- jquery - 如何在移动设备上创建 html 卡片的水平滚动列表,例如 chrome 搜索结果?
- php - 在 laravel 中使用谷歌 API
- scala - Spark中用户定义的聚合函数实现百分位数
- python-3.x - 缩放时 tkinter 画布上的 ARC 出现故障
- pygame - Pygame - 雪碧
- lazarus - 在 Free Pascal / Lazarus 中使用 SelectDirectoryDialog (TSelectDirectoryDialog) 时出现异常
- python - 使用ctypes时如何替换libm?
- mysql - MySQL - 数据太长?
- javascript - React,客户端移动或桌面
- python - Excel 嗅探、正则表达式和子字符串匹配