Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][SQL] Jak wydobyć dane?
poczatkujaca12
post 27.08.2021, 14:15:22
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 24.06.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Mam tabele:
  1. id | nazwa
  2. 1 | jakas
  3. 2 | jakas2
  4. 3 | jaaks3

druga
  1. id | DATA
  2. 1 | 2021-08-26
  3. 1 | 2021-08-27
  4. 3 | 2021-08-26


chcę połączyć zapytaniem:
  1. SELECT DISTINCT(d.id), d.nazwa, p.DATA FROM dic AS d LEFT JOIN proces p ON d.id=p.id WHERE p.DATA = now() OR p.DATA IS NULL

i wyswietla mi:
  1. 1 | jakas | 2021-08-27
  2. 2 | jakas2 | NULL


a chciałabym aby pokazało:
  1. 1 | jakas | 2021-08-27
  2. 2 | jakas2 | NULL
  3. 3 | jakas3 | NULL


tzn chcę, aby zawsze pokazywało wszystkie pozycje z dic i wyświetlało dzisiejszą datę jeśli jest wpisana w tabeli proces, jeśli nie to null, w tej chwil nie chce mi wyświetlić pozycji 3, bo jest wartość z wczoraj...
da się jakoś to zrobić?

Ten post edytował poczatkujaca12 27.08.2021, 14:18:35
Go to the top of the page
+Quote Post
trueblue
post 27.08.2021, 14:40:45
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


To nie może być na poziomie klauzuli WHERE, ale na poziomie wybierania kolumn:

  1. SELECT d.id, d.nazwa, MAX(IF(p.DATA<>CURDATE(), NULL, p.DATA)) AS DATA
  2. FROM dic AS d
  3. LEFT JOIN proces p ON d.id=p.id
  4. GROUP BY d.id, d.nazwa


--------------------
Go to the top of the page
+Quote Post
poczatkujaca12
post 27.08.2021, 15:02:46
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 24.06.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dzięki, o to chodziło smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 18:20