[MySQL query]Hoe 3 tabellen tegelijk selecteren voor specifieke gegevens
Ik versimpel even mijn probleem en laat niet alle tabellen zien.
Tabellen / velden:
1) Login: u_id, u_voornaam, u_locatie
2) Locaties: loc_id, loc_naam (loc_id komt overeen met u_locatie)
3) Uren: u_id, uren_begin, uren_eind
Ik wil:
- Gegevens van gebruikers selecteren uit bepaalde vestigingen.
- Daarbij de voornaam van de desbetreffende persoon,
- En het aantal uren van die persoon
Dus alle uren van gebruikers uit locatie 1 en 2 bijvoorbeeld, met daarbij de juiste gegevens, begin eind, voornaam.
Nu ben ik uren aan het zooien geweest, maar ik kom er gewoon niet uit.
Kan iemand een klein voorbeeld geven?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT
loc.loc_naam,
l.u_voornaam,
SUM(u.uren_eind - u.uren_begin) AS aantal_uren
FROM
locaties AS loc
INNER JOIN
login AS l
ON l.u_locatie = loc.loc_id
INNER JOIN
uren AS u
ON u.u_id = l.u_id
WHERE
loc.loc_id IN (1, 2)
GROUP BY
loc.loc_naam,
l.u_voornaam
loc.loc_naam,
l.u_voornaam,
SUM(u.uren_eind - u.uren_begin) AS aantal_uren
FROM
locaties AS loc
INNER JOIN
login AS l
ON l.u_locatie = loc.loc_id
INNER JOIN
uren AS u
ON u.u_id = l.u_id
WHERE
loc.loc_id IN (1, 2)
GROUP BY
loc.loc_naam,
l.u_voornaam
Zoiets zal dat waarschijnlijk worden...
Flinke query is dat, misscien handig om hier een view van te maken.
De INNER JOIN heb ik nooit gebruik, ik heb wel alle typen joins gelezen, en daar de left join uitgepakt. Daar kon ik mee uit de voeten tot nu toe, dus dat wordt tutorials lezen en flink veel doen met de overige join methoden.
@Jurgen, wat bedoel je met een view?
SQL Joins
Deze tutorial geeft een duidelijk overzicht van de verschillende typen joins en hetgeen ze doen...
Deze tutorial geeft een duidelijk overzicht van de verschillende typen joins en hetgeen ze doen...
Trouwens dit is erg vreemd, ik probeer een DATA_FORMAT over een TIMEDIFF te doen, wil niet werken.
DATE_FORMAT(TIMEDIFF(u.uren_eind, u.uren_begin),'%H:%i') AS totaal
Quote:
Wat gebeurt er dan? Krijg je een foutmelding? Welke output krijg je wel die je niet verwacht?wil niet werken
http://www.experts-exchange.com/Database/MySQL/Q_22137332.html
Ik moet TIME_FORMAT gebruiken en geen DATE_FORMAT. Klinkt heel logisch, maar ik heb TIME_FORMAT nooit gebruikt ;-)
Nou ik krijg 00:00 als totaal, en geen foutmelding. Intussen heb ik de oplossing gevonden: Ik moet TIME_FORMAT gebruiken en geen DATE_FORMAT. Klinkt heel logisch, maar ik heb TIME_FORMAT nooit gebruikt ;-)
weet er iemand een uitleg/tutorial over view's in MySQL? Ik heb op google gezocht, maar niets gevonden..
http://www.java2s.com/Tutorial/MySQL/0180__View/0020__Create-View.htm
Die misschien?
Het geheim van Google is de goede keywoords gebruiken:
http://www.google.co.uk/search?hl=en&q=mysql+create+view+tut&meta=
Die misschien?
Het geheim van Google is de goede keywoords gebruiken:
http://www.google.co.uk/search?hl=en&q=mysql+create+view+tut&meta=