Jak powinno wyglądać zapytanie wyciągjące dane z dwóch tabel

0

Chcę wyciągnąć dane z dwóch tabel. mam takie tabele.
http://sqlfiddle.com/#!9/d8a990/1

No i teraz chodzi o to, żeby wyciągnąć takie pola jak z tabeli nastroj

godzina_zaczecia datetime NOT NULL,
godzina_zakonczenia datetime NOT NULL,
id_users int(11) NOT NULL,
poziom_nastroju smallint(6) NOT NULL,

z tabeli sen
data_rozpoczecia datetime NOT NULL,
data_zakonczenia datetime NOT NULL,
ilosc_wybudzen tinyint(4) DEFAULT NULL

I teraz czy da się tak zrobić, żeby drukował tylko te wpisy, które zaczynają się od godziny 0500

0

SELECT r.godzina_zaczecia,r.godzina_zakonczenia,r.id_users,r.poziom_nastroju, b.data_rozpoczecia,b.data_zakonczenia,b.ilosc_wybudzen
FROM NASTROJ r, SEN b

Tutaj na wyszukanie owych elementów
Da się zróbić.
Wystarczy dodać warunek

Where r.godzina_zaczecia > twojej godziny

0

to_date('500','hhss') możliwe że były inne oznaczenia

0

@pol90: dlaczego w żadnej z tych tabel nie ma klucza obcego? Jaka jest relacja między nimi?

Generalnie schemat jest taki:

SELECT
n.godzina_zaczecia,
n.godzina_zakonczenia,
n.id_users,
n.poziom_nastroju,

s.data_rozpoczecia,
s.data_zakonczenia,
s.ilosc_wybudzen

FROM nastroj n
INNER JOIN sen s ON n.id_users = s.id_users AND DATE(s.data_rozpoczecia) = DATE(n.godzina_zaczecia)

WHERE HOUR(n.godzina_zaczecia) > 5 

Dziwne te Twoje tabelki, ale jedyny związek jaki widzę, to n.id_users = s.id_users AND DATE(s.data_rozpoczecia) = DATE(n.godzina_zaczecia).

Dodam tylko, że jak będziesz miał dużo rekordów, to zapytanie będzie strasznie wolne, bo MySQL nie ma indeksów na funkcje, a w tym wypadku używamy i DATE i HOUR.

0

Da się. Cross joinem. Wszystko się da. Nie wszystko ma sens.

0
select a.pole1, a.pole2, .., b.polen
from tab1 a
join tab2 b on a.poleIdA = b.poleIdB
 where ....

Pamiętaj że Pole a.poleIdA lub b.poleIdB musi być kluczem obcym do drugiej tabeli, a w drugiej tabeli musi być ID.

0

Już sobie z tym problemem poradziłem zrobiłem tak, że przy dodawaniu wpisu obliczany jest poziom nastroju, a potem przy następnych wpisach jest uaktualniany i trzymany w osobnej tabeli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1