家伙php初学者在这里:)
我知道我的问题已经被问了很多,但是我读了20多个答案,其中大多数都不适用于我的查询,而且我的查询很简单,但是我不知道为什么不对我有用:( ,
我有2个表:
1- USERS :( ID,用户名,国家/地区,状态)主键是 id ,而原例密钥是国家
2- 国家/地区(country_id,country_en,国家/地区代码)主键是 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 ";
你们能帮我吗:(
答案 0 :(得分:0)
$sql = "SELECT users.username,users.country,user.status,countries.country_en
FROM users
INNER JOIN countries ON users.country = countries.country_id
WHERE users.status = 'active'
ORDER BY RAND() LIMIT 10 ";
但是您愿意接受sql注入,因此请查看准备好的语句
答案 1 :(得分:0)
感谢大家对我的帮助,
我想与大家分享我的问题的答案,这是一种最佳方法,它不仅获取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
在查询的“打开”部分中,告诉查询第一个表中的哪一列 与相匹配的第二张桌子。
The used SELECT statements have a different number of columns?