Problema interogare MYSQL

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori

biscuite
New Member
Mesaje: 3
Membru din: Sâm Feb 19, 2011 7:15 am

Problema interogare MYSQL

Mesajde biscuite » Joi Dec 14, 2017 10:49 pm

Salut,
Va rog ajutati-ma si pe mine cu o interogare intr-un MYSQL. Am 2 tabele tabelul societati:
id | nume_soc
1 | SC TEST SRL
2 | SC TEST1 SRL

si un tabel comenzi:
id_soc | produs | status
1 | Filru | 1
1 | Bieleta | 1
1 | Rulment | 0
2 | Macara | 1
1 | Ulei | 0

Fac interogarea cu php si generez un tabel in care afisez toate societatile din tabelul "societati" si vreau sa evidentiez cu rosu societatile care au status = 0 in tabela comenzi insa vreau sa apara doar o singura data societatea in tabelul generat chiar daca exista mai multe inregistrari in tabela comenzi cu status = 0, daca apare cel putin o data status = 0 sa o evidentiez cu rosu asta insemnand ca societatea are una sau mai multe comenzi deschise.

Multumesc mult pentru ajutor!



takedown
Average Member
Mesaje: 153
Membru din: Joi Feb 07, 2013 8:50 pm
Contact:

Re: Problema interogare MYSQL

Mesajde takedown » Vin Dec 15, 2017 10:31 am

Arunca o privire peste SQL JOINS, vei intelege despre ce este vorba.Aceste conditii de alaturare ( JOINS ) iti permit sa te folosesti de relatiile intre mai multe tabele pentru a prelua un set de rezultate.

Ti-am facut ceva aici, sper sa te ajute.

http://sqlfiddle.com/#!9/baf863/1

Memphistoles
PHPRomania Supporter
Mesaje: 9
Membru din: Lun Aug 08, 2016 10:59 am

Re: Problema interogare MYSQL

Mesajde Memphistoles » Vin Dec 15, 2017 12:06 pm

Salut,

Pentru afisare societati cu cel putin o comanda cu status 0 as sugera de fapt structurat putin diferit sql-ul lui @takedown, in felul de mai jos.De ce? E vorba de logica, desi rezultatul este acelasi in acest caz,pe viitor s-ar putea sa intampini unele probleme deoarece tu ai nevoie sa afisezi societatile in functie de comenzi ci nu comenzile in functie de societati,astfel Table A = tabela societati INNER JOIN Table B = tabela comenzi.Si eu te-as sfatui sa dai un ochi peste tipurile de JOINS ca sa intelegi de ce INNER ci nu LEFT,RIGHT,OUTER,etc.

Cod: Selectaţi tot

SELECT
  *
FROM
  societati AS s
INNER JOIN comenzi AS c ON c.id_soc = s.id
WHERE c.status = 0
GROUP BY s.id


http://sqlfiddle.com/#!9/e5bedf/3

biscuite
New Member
Mesaje: 3
Membru din: Sâm Feb 19, 2011 7:15 am

Re: Problema interogare MYSQL

Mesajde biscuite » Vin Dec 15, 2017 2:51 pm

Multumesc mult @Memphistoles este ok acum interogarea, greseala mea era ca nu le grupam si imi dubla sau tripla numele societatii in tabel functie de cate comenzi gasea pentru respectiva societate. Multumesc inca o data si va doresc tuturor un Craciun si un an nou cu multe bucuri si multa sanatate!!!!

Memphistoles
PHPRomania Supporter
Mesaje: 9
Membru din: Lun Aug 08, 2016 10:59 am

Re: Problema interogare MYSQL

Mesajde Memphistoles » Vin Dec 15, 2017 4:08 pm

biscuite scrie:Multumesc mult @Memphistoles este ok acum interogarea, greseala mea era ca nu le grupam si imi dubla sau tripla numele societatii in tabel functie de cate comenzi gasea pentru respectiva societate. Multumesc inca o data si va doresc tuturor un Craciun si un an nou cu multe bucuri si multa sanatate!!!!


N-ai pentru ce,sarbatori fericite :bigsmurf:


Înapoi la “MySQL”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 20 vizitatori