![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Kanapa Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki problem, mam sobie 2 tabele w jednej są produkty a w drugiej zdjecia do tych produktów wygląda to mniejwiecej tak: produkty: id | nazwa | opis | itd... 1 | jakas | 255znaków opisu | icos tam jescze zdjecia |id| produkt_id | nazwa pliku 1 | 1 | zdjecie.jpg 2 | 1 | zdjecie.jpg 3 | 1 | zdjecie.jpg i teraz chciałbym wyświetlić tylko to zdjęcie z najniższym id, jako zdjęcie główne żeby było na stałe to samo. I mam z tym problem bo nie bardzo znam sie na łączeniu tabel w jednym zapytaniu.. Zrobiłem coś takiego :
Ale to wyświetla wszystkie 3 fotki.. A ja bym chciał żeby dla każdego z powiedzmy 100 produktów wyświetlała sie jedna fotka. Jak by ktoś mogł mi pomóc i poprawić żeby to zadziałało tak jak powinno to byłbym wdzieczny ![]() Ten post edytował Mayka 2.07.2012, 19:32:19 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
LIMIT 1 i sortowanie po ASC - powinno załatwić problem.
-------------------- UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Kanapa Ostrzeżenie: (0%) ![]() ![]() |
No ale jak produktów jest 100 czy 50 to jak limit 1 by załatwił sprawe ? albo inaczej jak ograniczyć w takim razie wyswietlanie produktów do niewiem 37 ?
Ten post edytował Mayka 2.07.2012, 20:32:01 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Coś w ten deseń... Pisane z palca, a nie jestem dobry w te klocki, więc popróbuj z GROUP i ORDER. Aby ograniczyć wyświetlanie używasz LIMIT. -------------------- UWAGA! Stwierdzono naruszenie paragrafu §33 ustawy ACTA. Podpis użytkownika został usunięty.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 2 Dołączył: 29.04.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy jest sens łączenia tabel za pomocą JOIN, gdy pobieramy tylko jedną komórkę. Tutaj raczej muszę się spece wypowiedzieć. Problem z join polega na tym, że wypluje więcej wyników, gdy produkt ma więcej zdjęć (a podejrzewam, że nie o to chodzi), można to zniwelować bawiąc się GROUP BY, LIMIT i ORDER, ale po co skoro można prostym sposobem zawrzeć jedno podzapytania Ten post edytował neosatan 3.07.2012, 13:29:51 -------------------- C/C++ (ucze się...), PHP (ucze się...), SMARTY(ucze się...), PYTHON(ucze się...), C#(uczę się...), PERL(uczę się...), JavaScript(uczę się...), JAVA(będą mi kazali się uczyć...)... Ja się głównie uczę...
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Kanapa Ostrzeżenie: (0%) ![]() ![]() |
No własnie nie bardzo wiedziałem jak to połączyć żeby nie robić 2 zapytań oddzielnie i odrazu dostać wynik taki jak potrzebuje, przetrenuje pozniej to co podał neosatan ale mysle ze to rozwiąże mój problem.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
na kanwie twojego zapytania
wyswietli ci wszystkie rekordy z tabeli products i pierwszy spelniajacy kryterium rekord z tabeli product_images |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Kanapa Ostrzeżenie: (0%) ![]() ![]() |
No i o to mi własnie chodziło
![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
@alegorn
Nie ucz bzdur! To zapytanie jest błędne i będzie działać tylko na pseudobazie jaką jest MySQL (i to domyślnie, czyli źle, skonfigurowanej). Na każdej innej się wykrzaczy o grupowanie. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Kanapa Ostrzeżenie: (0%) ![]() ![]() |
@alegorn Nie ucz bzdur! To zapytanie jest błędne i będzie działać tylko na pseudobazie jaką jest MySQL (i to domyślnie, czyli źle, skonfigurowanej). Na każdej innej się wykrzaczy o grupowanie. No to może powiedz jak to powinno być zrobione i dlaczego nie tak ? Co masz na mysli mowiac o "pseudo bazie jaka jest mysql "? No i najważniejsze, dlaczego daje potrzebny efekt ? Ten post edytował Mayka 3.07.2012, 23:10:57 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Prawidłowo to zapytanie powinno wyglądać tak (uwzględniając, to że musi występować GROUP BY)
A co zwróci to? Nie wiem. Podobnie jak MySQL nie wie, co zwróci pierwsza wersja tego zapytania... Dowód? Proszę: http://dev.mysql.com/doc/refman/5.1/en/gro...en-columns.html Polecam to zdanie: "The server is free to choose any value from each group, so unless they are the same, the values chosen are indeterminate." |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Kanapa Ostrzeżenie: (0%) ![]() ![]() |
No i kaszana wychodzi... pierwsze 5 jest ok pozniej jest id9, id9 ,id13,id13 ... No to niema sposobu żeby połączyć 2 tabele ? Musze zrobić to zapomocą 2 zapytań ? No bo przeciez to jest jakas przesada żeby nie można było przewidziec co sie wyświetli przecież..
To co napisał neosatan działa tak jak powinno
Ten post edytował Mayka 4.07.2012, 18:58:33 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
A sprawdziłeś zapytanie, które ja ci napisałem? Wczoraj 00:08
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 12.01.2009 Skąd: Kanapa Ostrzeżenie: (0%) ![]() ![]() |
Sprawdziłem
![]() Mam teraz inne pytanie jak zrobić żeby pobierało dane z jednej tabeli i sprawdzało czy id_produktu jest w drugiej tabeli ijeśli jest to żeby nie zwracało takiego wyniku ? Można to zrobić jednym zapytaniem ? Bo probowałem
Ale wyświetla wszystko a ja bym chciał zrobić tak że jeśli jest product_id w tabeli reviews o takiej samej wartości jak od w tabeli products to żeby nie zwracało już takiej wartości. Albo inaczej, zeby zwróciło wszystko co jest w produktach ale nie te co maja juz wpis o takim samym product_id. Bosh.. ale namotałem, mam nadzieje że wiecie o co mi chodzi ![]() |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 16:55 |