Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z select - where wielokrotnie
komarg
post 19.01.2018, 10:33:37
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.11.2017

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


Witam mam problem z konstrukcja zapytania sad.gif(
2 tabele -
pep_anilox
-id (PK)
-anilox


i znacznie wieksza tab.
pep_forma
-id (PK)
-anilox01
-anilox02
-anilox03
itd do 12

anilox01-12 oczywiscie zawiera id odpowiadajace tab.anilox.

Gdy zrobie
  1. WHERE `pep_forma`.`anilox_01`=`pep_anilox`.`id`
wynik jest poprawny, lecz gdy dodaje kolejne polaczenia
  1. AND
i tylko zmieniam numery nie pokazuje juz zadnych wyników sad.gif
Czym to jest spowodowane?questionmark.gif
Go to the top of the page
+Quote Post
nospor
post 19.01.2018, 10:37:14
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
Czym to jest spowodowane?
Tym ze warunek nie jest spelniony


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
komarg
post 19.01.2018, 10:41:30
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.11.2017

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


dzieki za odp.
a czy mógłbys nieco najkierowac na rozwiazanie??
Go to the top of the page
+Quote Post
nospor
post 19.01.2018, 10:44:08
Post #4





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




A co tu kierowac? Dajesz warunek, ktory nie jest spelniony. Sprawdz jak dokladnie wyglada przykladowy rekord i zastanaw sie, czemu warunek nie jest spelniony mimo ze ci sie wydaje ze byc powinien

naprawde wszystkie pola anilox01, anilox02,... anilox12 w jednym rekordzie maja te sama wartosc? Watpie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
komarg
post 19.01.2018, 10:48:32
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.11.2017

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


Gdybym znał rozwiązanie nie pisałbym na forum.
Jedynie domyslam sie ze problem lezy w wielokrotnym odwołaniu do pola pep_anilox.anilox (wsumie wystepuje 12razy)
Go to the top of the page
+Quote Post
nospor
post 19.01.2018, 10:49:52
Post #6





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Pytalem
Cytat
naprawde wszystkie pola anilox01, anilox02,... anilox12 w jednym rekordzie maja te sama wartosc? Watpie

Tu jest klucz do twojej zagadki.

Jesli zas chcesz pobrac wszystkie rekordy z pep_anilox ktore sa w tych polach, to masz uzyc LEFT JOIN a nie zadnego AND w WHERE. Podstawy logiki leza u ciebie wink.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
komarg
post 19.01.2018, 11:05:48
Post #7





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.11.2017

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


  1. SELECT `pep_forma`.`id`,
  2. `pep_anilox`.`anilox` AS a1,
  3. `pep_anilox`.`anilox` AS a2,
  4. `pep_anilox`.`anilox` AS a3,
  5. `pep_anilox`.`anilox` AS a4,
  6. `pep_anilox`.`anilox` AS a5,
  7. `pep_anilox`.`anilox` AS a6,
  8. `pep_anilox`.`anilox` AS a7,
  9. `pep_anilox`.`anilox` AS a8,
  10. `pep_anilox`.`anilox` AS a9,
  11. `pep_anilox`.`anilox` AS a10,
  12. `pep_anilox`.`anilox` AS a11,
  13. `pep_anilox`.`anilox` AS a12
  14. FROM `pep_forma`
  15. LEFT JOIN pep_anilox ON pep_forma.anilox_01=pep_anilox.id

Dla jednego wiersza działa, przy dodaniu kolejnych pokazuje puste wyniki
Go to the top of the page
+Quote Post
nospor
post 19.01.2018, 11:11:05
Post #8





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




zacznij w koncu podawac pelne zapytania ktore ci nie dzialaja. Skad mam wiedziec jak to dodajesz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
komarg
post 19.01.2018, 11:17:52
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.11.2017

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


  1. SELECT `pep_forma`.`id`,
  2. `pep_anilox`.`anilox` AS a1,
  3. `pep_anilox`.`anilox` AS a2,
  4. `pep_anilox`.`anilox` AS a3,
  5. `pep_anilox`.`anilox` AS a4,
  6. `pep_anilox`.`anilox` AS a5,
  7. `pep_anilox`.`anilox` AS a6,
  8. `pep_anilox`.`anilox` AS a7,
  9. `pep_anilox`.`anilox` AS a8,
  10. `pep_anilox`.`anilox` AS a9,
  11. `pep_anilox`.`anilox` AS a10,
  12. `pep_anilox`.`anilox` AS a11,
  13. `pep_anilox`.`anilox` AS a12
  14. FROM `pep_forma`
  15. LEFT JOIN pep_anilox ON pep_forma.anilox_01=pep_anilox.id
  16. AND pep_forma.anilox_02=pep_anilox.id
  17. AND pep_forma.anilox_03=pep_anilox.id
  18. itd...
Go to the top of the page
+Quote Post
nospor
post 19.01.2018, 11:20:53
Post #10





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Na kazde pole masz robic oddziely LEFT JOIN a nie jeden LEFT JOIN z wieloma AND... toz teraz zrobiles to samo co wczesniej


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
komarg
post 19.01.2018, 11:31:36
Post #11





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 8.11.2017

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


  1. SELECT `pep_forma`.`id`,
  2. `pep_anilox`.`anilox` AS a1,
  3. `pep_anilox`.`anilox` AS a2,
  4. `pep_anilox`.`anilox` AS a3,
  5. `pep_anilox`.`anilox` AS a4,
  6. `pep_anilox`.`anilox` AS a5,
  7. `pep_anilox`.`anilox` AS a6,
  8. `pep_anilox`.`anilox` AS a7,
  9. `pep_anilox`.`anilox` AS a8,
  10. `pep_anilox`.`anilox` AS a9,
  11. `pep_anilox`.`anilox` AS a10,
  12. `pep_anilox`.`anilox` AS a11,
  13. `pep_anilox`.`anilox` AS a12
  14. FROM `pep_forma`
  15. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_01`=`pep_anilox`.`id`
  16. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_02`=`pep_anilox`.`id`
  17. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_03`=`pep_anilox`.`id`
  18. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_04`=`pep_anilox`.`id`
  19. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_05`=`pep_anilox`.`id`
  20. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_06`=`pep_anilox`.`id`
  21. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_07`=`pep_anilox`.`id`
  22. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_08`=`pep_anilox`.`id`
  23. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_09`=`pep_anilox`.`id`
  24. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_10`=`pep_anilox`.`id`
  25. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_11`=`pep_anilox`.`id`
  26. LEFT JOIN `pep_anilox` ON `pep_forma`.`anilox_12`=`pep_anilox`.`id`

no i dostaje Error 1066 "Not unique table/alias: "pep_anilox"
Go to the top of the page
+Quote Post
nospor
post 19.01.2018, 11:32:11
Post #12





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Ale kazda tabela w LEFT JOIN ma miec swoj alias by byla unikalna. Inaczej dostajesz blad jaki wlasnie masz teraz.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 28.03.2024 - 12:11