Autor | Zpráva | ||
---|---|---|---|
Andrej.B Profil |
#1 · Zasláno: 26. 12. 2018, 20:39:28
zdravim,
mam select na DB na tabulku sklad_material /druhy materialov/ , ktory vyberie podla zadanej klauzuly WHERE... vybera dobre... cca 60 zaznamov ako je spravne.Len by som tam potreboval este jednu podmienku ci sa nachadza ten ktory material aj v druhej tabulke aby si clovek mohol vyberat len ten druh materialu, ktory je aj fyzicky prijaty... <?php $result = $conn->query (" SELECT * FROM sklad_material WHERE aktivny_sklad_material = '1' AND (id_druh_material = '3' or id_druh_material = '2' or id_druh_material = '4') "); while ($row = $result->fetch_array()) { echo "<option value=\"".$row["id_material"]."\""; if($row['id_material'] == $_POST[id_top]){ echo ' selected'; } echo ">".$row["nazov_material"]."</option>\n"; /* free result set */ } mysqli_free_result($result); ?> Rad by som este dal dalsiu WHERE podmienku ci sa nachadza aspon jeden zaznam v tabulke sklad_polozka /druhy na sklade/... Nepotrebujem ukazat vsetky druhy materialu ale len tie co maju vobec nejaky prijaty material... Skusam rozne kombinacie na COUNT(id_material)>0 a podobne ale nevychadza mi to... indexy su na id_material viac na sqlfiddle.com/#!9/47858d/1 dakujem |
||
Tomášeek Profil |
Andrej.B:
Snad jsem to na tabletu rozluštil správně. Důležité je JOIN em tu druhou tabulku přidat do dotazu, pak s ní můžeš dále pracovat (ať už v ON klauzuli, nebo ve WHERE ). Doplnil jsem aliasy, podstatné jsou však řádky 3-4.
SELECT sm.* FROM sklad_material sm JOIN sklad_polozka sp ON sm.id_material = sp.id_material WHERE sm.aktivny_sklad_material = '1' AND (sm.id_druh_material = '3' OR sm.id_druh_material = '2' OR sm.id_druh_material = '4' ) |
||
Andrej.B Profil |
#3 · Zasláno: 26. 12. 2018, 21:31:14
Tomášeek:
skual som to nejako tak rozne cez join len vzdy nieco chybalo... cize ta klauzula ON sm.id_material = sp.id_material , vlastne hovori, ze vyber tie hodnoty id_material, co sa nachadza v oboch tabulkach? A diky, funguje... |
||
Tomášeek Profil |
Andrej.B:
ON říká, na základě jaké podmínky se má JOINovaná tabulka připojit k některé z existujících. Zde shodou okolností je ten sloupec pojmenován stejně, může se napojovat na jakékoliv sloupce. Mrkni do SQL manuálu, nebo nějaké knihy, tam bude ON popsán v kapitole JOInů. |
||
Časová prodleva: 5 let
|
0