Centar za edukaciju-BiH



#1 02.06.2020 09:06
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:SQL upiti
Pronadi sve zaposlenike koji zive u istoj ulici kao i Vasko

PreuzmiIzvorni kôd (Text):
  1. CREATE TABLE `zaposlenici` (
  2.   `id` int(11) NOT NULL,
  3.   `ime` text NOT NULL,
  4.   `adresa` text NOT NULL,
  5.   `grad` text NOT NULL
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  7.  
  8. INSERT INTO `zaposlenici` (`id`, `ime`, `adresa`, `grad`) VALUES
  9. (1, 'Vasko', 'Vardarska', 'Zagreb'),
  10. (2, 'Luka', 'Osijecka', 'Zagreb'),
  11. (3, 'Marko', 'Zagorska', 'Zagreb'),
  12. (4, 'Ivan', 'Osijecka', 'Zagreb'),
  13. (5, 'Marta', 'Zagrebacka', 'Zagreb'),
  14. (6, 'Smiljan', 'Vardarska', 'Zagreb'),
  15. (7, 'Mitar', 'Zagorska', 'Zagreb'),
  16. (8, 'Ahmed', 'Vardarska', 'Zagreb');
  17.  
  18. ALTER TABLE `zaposlenici`
  19.   ADD PRIMARY KEY (`id`);

zivot je moja domovina.
↑  ↓

#2 02.06.2020 09:07
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: SQL upiti
Citiraj Gjoreski:
PreuzmiIzvorni kôd (SQL):
  1. SELECT * FROM tblKorisnik
  2. WHERE kMesto IN (SELECT kMesto FROM tblKorisnik WHERE ID_Korisnik = 28 )

OVO CE RADITI SAMO AKO JE ULICA NAPISANA U SVA REDOVA IDENTICNO

PreuzmiIzvorni kôd (SQL):
  1. SELECT * FROM tblKorisnik
  2. WHERE kAdresa LIKE '%' + LEFT((SELECT kAdresa FROM tblKorisnik WHERE ID_Korisnik = 32 ),6) + '%'

zivot je moja domovina.
↑  ↓

#3 02.06.2020 09:14
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: SQL upiti
SELECT * FROM zaposlenici
WHERE adresa IN (SELECT adresa FROM zaposlenici WHERE id = 1 )

rezultat:
    1     Vasko     Vardarska     Zagreb
    6     Smiljan     Vardarska     Zagreb
    8     Ahmed     Vardarska     Zagreb
zivot je moja domovina.
↑  ↓

#4 02.06.2020 09:16
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: SQL upiti
U nekoj knjiznici imamo knjige po ID

knjige posudivanje clanovi
ID knjige id knjige  id clana
naslov knjige  datum  ime
autor knjige  id clana  adresa

U 8:00 neki čovjek uzima knjigu iz knjižnice i vraća ju u 11:00.
Tu istu knjigu uzima Vasko svaki dan točno u 12:00 i vraća ju u knjižnicu u 18:00.
U 18:00 tu istu knjigu uzima neki treći čovjek i vraća ju sutradan ujutro u 8:00.

Policija misli da knjige služe tajnoj organizaciji za razmjenu važnih podataka.
Treba naći ljude koji su posudivali istu knjigu (ID knjige) istoga datuma kada i Vasko.
zivot je moja domovina.
Ovaj post je ureden 1 puta. Posljednja izmjena 02.06.2020 09:17 od strane Avko. ↑  ↓

#5 02.06.2020 10:42
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: SQL upiti
Ovo tvoje zadnje pitajne je sasvim nejasno .
Postavi tabela i reci sta zelis da se izvuce
↑  ↓

#6 02.06.2020 11:53
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: SQL upiti
tblKnjige
------------
id
naslov
autor

tblPosudivanje
------------------
datum
idKnjige
idClan

tblClanovi
-------------
id
ime
adresa

Svi clanovi koji su posudili istu knjigu kao i Vasko i istog datuma
zivot je moja domovina.
↑  ↓

#7 02.06.2020 22:43
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: SQL upiti
evo ja sam danas cijeli dan trazio jedan hebeni upit i nisam ga rijesio.

uspio sam samo za jedan dan, neznam kako za sve dane.

evo sto sam ja napravio:

PreuzmiIzvorni kôd (Text):
  1. SELECT *
  2. FROM posudivanje AS p
  3. INNER JOIN knjige AS k ON p.idKnjiga=k.id
  4. INNER JOIN zaposlenici AS z ON p.idClan=z.id
  5. WHERE p.datum='2020-06-02'
  6. AND k.id=(SELECT p1.idKnjiga
  7.           FROM posudivanje AS p1
  8.          WHERE p1.idClan='1' AND p1.datum='2020-06-02')

moram priznati da me je i malo iznerviralo.
Puno sam trazio po internetu no nalazio sam samo jednostavne primjere.
zivot je moja domovina.
↑  ↓

#8 04.06.2020 09:54
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: SQL upiti
PreuzmiIzvorni kôd (SQL):
  1. SELECT B.datum,Naslov,Ime
  2. FROM tblPosudivanje A
  3. INNER JOIN tblPosudivanje B ON A.Datum=B.Datum AND A.idKnjige=B.idKnjige
  4. INNER JOIN tblKnjige ON tblKnjige.ID=B.idKnjige
  5. INNER JOIN tblClanovi ON tblClanovi.ID=B.idClan
  6. WHERE A.idClan=1
↑  ↓

#9 04.06.2020 14:11
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: SQL upiti
Gjoreski, ovo radi savršeno.
Hvala
zivot je moja domovina.
↑  ↓

#10 05.06.2020 17:53
Avko Van mreze
Administrator
Registrovan od:28.05.2014
Postovi:4,696


Predmet:Re: SQL upiti
sada sa 4 tbl

tblCalendar
---------------
Date
IdCityDepartmentOffice

tblEmployees
-----------------
IdEmployees
Name
Adress
Phone
Email

tblSchedule
---------------
IdEmployees
IdDepartment
Date

tblCityDepartmentOffice
-------------------------------
IdCityDepartmentOffice
IdDepartment
IdOffice
StartTime



DATA

schedule-Å¡ema=>ovo nije tabla samo da se vidi kako funkcionira
IdDepartment
10
310
610
20
320
620
30
330
630

tblSchedule
Id employees
1001
1001
1001
1001
1001
1001
1001
1002
1002
1002
1002
1002
1002
1002
1003
1003
1003
1003
1003
1003
1003
1004
1004
1004
1004
1004
1004
1004
1005
1005
1005
1005
1005
1005
1005
1006
1006
1006
1006
1006
1006
1006
1007
1007
1007
1007
1007
1007
1007
1008
1008
1008
1008
1008
1008
1008
1009
1009
1009
1009
1009
1009
1009

tblCalendar
date
1.6.
2.6.
3.6.
4.6.
5.6.
6.6.
7.6.

Employees
Id employees
1001
1002
1003
1004
1005
1006
1007
1008
1009

tblCityDepartmentOffice
IdCityDepartmentOffice
0106
0106
0106
0106
0106
0106
0106
0106
0106
0606
0606
0606
0606
0606
0706
0706
0706


U kojoj kancelariji (office) je radio Vasko?

PreuzmiIzvorni kôd (Text):
  1. SELECT r1.date, e1.id_employees, r1.id_department, s1.id_office, s1.startTime
  2. FROM tbl_schedule as r1
  3. INNER JOIN tbl_calendar AS k1 ON r1.date = k1.date
  4. INNER JOIN tbl_citydepartmentoffice AS s1 ON (k1.id_cityDepartmentOffice = s1.Id_cityDeparmentOffice AND r1.id_department = s1.id_department)
  5. INNER JOIN tbl_employees AS e1 ON r1.id_employees=e1.id_employees
  6. WHERE r1.date = DATE('2020-06-01')
  7. AND s1.id_office =(SELECT s2.id_office
  8. FROM tbl_schedule as r2
  9. INNER JOIN tbl_calendar AS k2 ON r2.date = k2.date
  10. INNER JOIN tbl_citydepartmentoffice AS s2 ON (k2.id_cityDepartmentOffice = s2.Id_cityDeparmentOffice AND r2.id_department = s2.id_department)
  11. INNER JOIN tbl_employees AS e2 ON r2.id_employees=e2.id_employees
  12. WHERE r2.id_employees='1001' AND r2.date = DATE('2020-06-01'))
rezultat:
dateid_employeesid_departmentid_officestartTime 
2020-06-01100110105:00:00 
2020-06-011002310111:00:00 
2020-06-011003610117:00:00 

Pitanje:

Treba napisati upit: tko je sve radio sa Vaskom u kancelariji?

rezultat bi trebao pokazati:

dateid_employeesid_departmentid_officestartTime 
2020-06-01100110105:00:00 
2020-06-011002310111:00:00 
2020-06-011003610117:00:00 
2020-06-02100330306:00:00 
2020-06-021008330312:00:00 
2020-06-021009630318:00:00 
2020-06-03100930306:00:00 
2020-06-031001330312:00:00 
2020-06-031002630318:00:00 
2020-06-04100130306:00:00 
2020-06-041002330312:00:00 
2020-06-041003630318:00:00 
2020-06-05100820205:30:00 
2020-06-051009320211:30:00 
2020-06-051001620217:30:00 
2020-06-06100920209:00:00 
2020-06-061001320215:00:00 
2020-06-071001FDnullnull 

zivot je moja domovina.
Ovaj post je ureden 1 puta. Posljednja izmjena 05.06.2020 17:54 od strane Avko. ↑  ↓

Stranice (6):1,2,3,4,5,6


Sva vremena su GMT +01:00. Trenutno vrijeme: 11: 49 am.