Tags:
mysql
php
Jeg har to tabeller:
a) calendar / indeholder et timestamp m.m. for hver eneste dag i året
b) id_obj_dk / her haves diverse info om objekter og en relation til "calendar" med en status (type) for hver eneste dag i året. Staus (type) kan udelukkende have én status pr. dag - status kan have adskille forskellige værdier.
Problem: Jeg skal finde de objekter i "id_obj_dk" som har status "fr" for alle timestaps i "calendar" i en periode fra $date1_ts til $date2_ts.
Nedenstående sql udvælger objekter der minimum har ét timestamp med status 'fr' - selvom andre dage har en anden status. Jeg vil kun have returneret objekter hvor ALLE dage fra date1_ts til $date2_ts' er 'fr'.
SELECT id_object FROM obj_cal_dk, calendar
WHERE obj_cal_dk.id_calendar = calendar.id
AND '$date1_ts' <= ts_php
AND '$date2_ts' >= ts_php
AND type IN ('fr')
GROUP BY id_object
Er der nogen der er så venlige, at de vil redde min weekend?
2 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
0
Hej Kristian,
For at kunne hjælpe dig skal vi bruge en oversigt over din table opsætning så vi kan se hvilke datatyper dine felter er.
0
Hej Mark
Jeg håber jeg har forstået dig korrekt - her er mine 2 berørte tabeller:
calendar
- id / INT(10)
- ts_php / timestamp for hver dag og gemt som INT(10))
- øvrige kolonner med indhold der ikke vedrører sql-udtrækket
obj_cal_dk
- id / INT(10)
- type / udlejningsobjektets status pr. dag/timestamp - enum('cl','fr','re')
- id_calendar / reference til calendar - INT(10)
- id_object / reference til mine udlejnings-objekter - INT(10)
- øvrige kolonner med info der ikke vedrører sql-udtrækket
Jeg ønsker at finde de id_object der har status "fr" for alle dage i et tidsinterval fra ts_php til ts_php.
Håber du kan hjælpe med en sql-query-løsning baseret på ovenstående data.
På forhånd mange tak for hjælpen
Mvh
Kristian