Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SELECT z nietypowym warunkiem
zkwc
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 6.03.2013

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


Witam Wszystkich,
Poszukuję najprostszego rozwiązania do poniższego problemu:
Z poniższej tabeli potrzebuję pobrać rekordy dla wszystkich zamówień (ord) gdzie typ = 'wysylka' (gdy 'wysylka' nie występuje należy pobrać rekord dla 'billing')

lp ord typ miasto
1 1 billing wroclaw
2 2 billing krakow
3 3 billing warszawa
4 3 wysylka lodz
5 4 billing poznan
6 5 billing krakow
7 5 wysylka katowice

Tabela wyjściowa powinna wyglądać następująco:

lp ord typ miasto
1 1 billing wroclaw
2 2 billing krakow
4 3 wysylka lodz
5 4 billing poznan
7 5 wysylka katowice

Z góry dzięki.
Pozdrawiam,
zkwc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lexis72
post
Post #2





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.02.2013

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


Sprawdzilem to na innym zapytaniu w innej bazie i wyszlo mi ze to dziala to tylko w przypadku kiedy poszukiwany rekord ma wstawiona wartosc null. Natomiast mi chodzilo o to ze rekord jest pusty (nie ma nic wpisane) albo w ogole go nie ma. Jak zrobic zapytaniem mysql by wtedy pokazywalo zamienny tekst?

To jest przykladowa moja baza danych:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <meta content="text/html; charset=ISO-8859-2"
  3. http-equiv="content-type">
  4. </head>
  5. <table style="text-align: left; width: 665px; height: 172px;"
  6. border="1" cellpadding="2" cellspacing="2">
  7. <tr>
  8. <td>User_id</td>
  9. <td>Warunek</td>
  10. <td>Grupa</td>
  11. </tr>
  12. <tr>
  13. <td>5</td>
  14. <td>1</td>
  15. <td>1</td>
  16. </tr>
  17. <tr>
  18. <td>8</td>
  19. <td>2</td>
  20. <td>2</td>
  21. </tr>
  22. <tr>
  23. <td>9</td>
  24. <td>2</td>
  25. <td>3</td>
  26. </tr>
  27. <tr>
  28. <td>10</td>
  29. <td>1</td>
  30. <td>4</td>
  31. </tr>
  32. <tr>
  33. <td>12</td>
  34. <td>2</td>
  35. <td>5</td>
  36. </tr>
  37. </tbody>
  38. <br>
  39. </body>
  40. </html>


Mam nastepujace zapytanie

  1. (SELECT user_name FROM ".DB_WYNIKI." LEFT JOIN ".DB_USERS." USING(user_id) WHERE warunek=1 AND grupa_id=t1.grupa_id) AS abc


Wybiera mi ono tylko wierwsze z warunkiem 1 i grupą ustalona wczesniej. Jesli ustalona grupa to np 5 to wskazuje mi uzytkownika o ID 12. Wszystko dziala jak nalezy. Problem jest taki ze gdy ustalona jest grupa 6 a jak widac w zalaczonej tabeli jeszcze nie ma uzytkownika ktory by nalezal do tej grupy pojawia sie puste pole a chcialbym zeby pokazywal sie wymyslony przeze mnie tekst zamienny. Czy MYSQL na prawde nie ma takiej funkcji zeby podawal zamienny tekst w przypadku gdy nie znajdzie poszukiwanego rekordu?
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 16:51