Mysql SELECT не работает - PullRequest
       4

Mysql SELECT не работает

0 голосов
/ 02 октября 2011

У меня есть таблицы:

Пользователи

ID | RANK | NAME | EMAIL       | PASS
01 |  1   | Foo  | foo@bar.com | $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

Но выбран только один шаг.

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 02 октября 2011
   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 
0 голосов
/ 02 октября 2011

Данный SQL и данные приведут к трем строкам - и даже без использования LEFT JOIN (достаточно простого JOIN).

Вы не показываете и не описываете, как работает SQL;Вам нужно выбрать несколько строк в цикле или использовать какой-нибудь метод «Извлечь все строки»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...