MySql łączenie zapytań


(Drobok) #1

Jak połączyć:

SELECT dobre, zle, tresc FROM test_test WHERE nr=$test AND acc=1 LIMIT X

Gdzie X to

SELECT ile FROM test_dzial WHERE nr=$test AND acc=1

(GioWDS) #2
SELECT `t1`.`dobre`,`t1`.`zle`, `t1`.`tresc` FROM `test_test` `t1` LEFT JOIN `test_dzial` `t2` ON `t1`.`nr` = `t2`.`nr`

(Drobok) #3

Nie o to mi chodziło. Zapytanie 2 ma być limitem dla 1. Tzn:

Mam pole ile w tabeli test_dzial. W którym mam napisane, ile ma pobrać z tabeli test_test. Dotychczas używałem drugiego, po czym po zapisaniu do zmiennej używałem wyniku jako limit w drugim. (Podstawiając za x)


(R@z0r) #4

Co? Słyszałeś o COUNT()?


(Drobok) #5

weź z tabeli test_test tyle, ile masz zadeklarowane w polu ile tabeli test_dzial :slight_smile:

Nie chodzi mi o liczbę pól etc, ile nie ma nic wspólnego z liczbą jakichkolwiek wyników

$res=$this->sql->query("SELECT ile FROM test_dzial WHERE nr=".$nr);

		$num = $res->fetch_assoc();

$res=$this->sql->query("SELECT tresc FROM test_test WHERE nr=".$nr." AND acc=1 ORDER BY RAND() LIMIT ".$num['ile']);

Ogólnie chodzi mi o coś takiego, tylko w jednym zapytaniu :slight_smile: