2014-11-26 6 views
0

сейчас я делаю свое дело с этим тяжелым кодом:SELECT в таблице из другого SELECT в одном запросе MySQL?

$arrayid = array(); 
$req = $mysqli->query("SELECT * FROM sc_users_teaching WHERE lesson = '_ADOBE_PHOTOSHOP_' ORDER BY lesson DESC"); 
while($liste_resultat = $req->fetch_assoc()) { 
$ID_USER = $liste_resultat['ID_USER']; 
    $req_user = $mysqli->query("SELECT * FROM sc_users WHERE ID_USER = '$ID_USER' LIMIT 0,1"); 
    $liste_user = $req_user->fetch_assoc(); 
     $lastconnexion = $liste_user['lastconnexion']; 
     $arrayid[$ID_USER] = $lastconnexion; 
} 
arsort($arrayid); 
foreach ($arrayid as $key => $val) { 
    //select in sc_users table where ID_USER is $key; 
} 

Поэтому цель состоит в том, чтобы выбрать все ID_USER в sc_users_teaching таблице, а затем найти ID_USER в sc_users и сортировать их по lastconnexion

Я не могу понять как сделать запрос (СОЮЗ или ПРИСОЕДИНЯЙТЕСЬ?), поэтому, если бы вы могли мне помочь, я буду признателен.

Спасибо!

Решение:"SELECT * FROM sc_users WHERE ID_USER IN (SELECT ID_USER FROM sc_users_teaching WHERE lesson = '_ADOBE_PHOTOSHOP_') ORDER BY lastconnexion ASC"

Благодаря u_mulder

+2

'SELECT * FROM sc_users WHERE ID_USER IN (SELECT ID_USER FROM sc_users_teaching WHERE урок = '_ADOBE_PHOTOSHOP _')' –

+0

'" SELECT * FROM sc_users WHERE ID_USER IN (SELECT ID_USER FROM sc_users_teaching WHERE урок = '_ADOBE_PHOTOSHOP_') ORDER BY lastconnexion ASC "' Благодарим за помощь! – orugari

ответ

1

Так что вам нужно сделать, это принести ID_USER из sc_users_teaching и найти ID_USER от sc_users

Так firsty мы можем выбрать все пункты из таблицы sc_users и находит ID_USER с подзапросом как @u_mulder, упомянутым в комментарии, который выглядит.

SELECT * FROM sc_users WHERE ID_USER IN (SELECT ID_USER FROM sc_users_teaching WHERE lesson = '_ADOBE_PHOTOSHOP_') ORDER BY lastconnexion ASC; 
Смежные вопросы