Mysql SELECT 不工作

发布于 2024-12-07 08:00:49 字数 687 浏览 2 评论 0原文

我有表格:

用户

ID | RANK | NAME | EMAIL       | PASS
01 |  1   | Foo  | [email protected] | $06$uhAMXXZowVIDQ.ZR1gky.u3f/UBkLW8Kd8cbyDt2eNx1qnZH2AUmW

允许

ID | RANK | STEP
01 |  1   |  1
02 |  1   |  2
03 |  1   |  3
04 |  2   |  1
05 |  4   |  *  

而且,我需要了解用户等级的所有允许步骤。

我的代码:

SELECT users.*, allow.step AS allow_step
  FROM users AS users LEFT JOIN allow ON users.rank = allow.rank

但只选择了一个步骤。

感谢您的帮助!

I have the tables:

users

ID | RANK | NAME | EMAIL       | PASS
01 |  1   | Foo  | [email protected] | $06$uhAMXXZowVIDQ.ZR1gky.u3f/UBkLW8Kd8cbyDt2eNx1qnZH2AUmW

allow

ID | RANK | STEP
01 |  1   |  1
02 |  1   |  2
03 |  1   |  3
04 |  2   |  1
05 |  4   |  *  

And, I need to know all allowed steps from user rank.

My code:

SELECT users.*, allow.step AS allow_step
  FROM users AS users LEFT JOIN allow ON users.rank = allow.rank

But only one step are selected.

Thanks for help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那片花海 2024-12-14 08:00:49
   SELECT u.*, GROUP_CONCAT(a.step) allow_step 
     FROM users u 
LEFT JOIN allow a 
       ON u.rank = a.rank
 GROUP BY a.rank_id

这应该选择以逗号分隔的步骤列表。类似于 1,2,3


如果您需要对串联值进行排序,请将查询的第一行更改为:

   SELECT u.*, GROUP_CONCAT(a.step ORDER BY a.step) allow_step 
   SELECT u.*, GROUP_CONCAT(a.step) allow_step 
     FROM users u 
LEFT JOIN allow a 
       ON u.rank = a.rank
 GROUP BY a.rank_id

This should select a list of steps separated by commas. Something like 1,2,3.


If you need the concatenated values to be ordered, change the first line of the query to:

   SELECT u.*, GROUP_CONCAT(a.step ORDER BY a.step) allow_step 
Smile简单爱 2024-12-14 08:00:49

给定的 SQL 和数据将产生三行 - 即使不使用 LEFT JOIN(一个简单的 JOIN 就足够了)。

您不显示或描述您如何运行 SQL;您是否需要在循环中获取多行,或者使用某种“获取所有行”方法?

The given SQL and data will yield three rows - and would even without the use of a LEFT JOIN (a simple JOIN would suffice).

You don't show or describe how you are running the SQL; do you need to fetch multiple rows in a loop, or use some 'fetch all rows' method?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文