![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z zapytaniem do bazy danych, a więc, mam dwie tabele
ulubione : post_id | user_id posts id | title | body | created i chciałem ułożyć zapytanie takie aby mi zwracało zmienną np "isFavs" (true/false) jeśli id postu jest w ulubionych, probowalem tak, ale to nie dział:
Ten post edytował moto0095 12.06.2013, 17:50:15 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
kombinujesz właściwie, ale musisz jeszcze połączyć obie tabele gdyż bez tego tworzy się iloczyn kartezjański.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
A mógłbyś napisać jak to zrobić ?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli użyjemy takiego joina to właściwie cały ten IF możemy zastąpić SELECT 1 AS isFavs, zapewnia to sam warunek złączenia, a nie przypuszczam by o to autorowi chodziło.
W ogóle ciężko stwierdzić o co chodziło, bo jesteśmy przygniecieni ogromem informacji zawartych w stwierdzeniu "ale to nie dział". Prawidłową odpowiedzią na najbardziej prawdopodobny scenariusz czyli autorowi chodziło o to, by wyświetlić wszystkie posty oraz informację czy dany post znajduje się w czyichkolwiek ulubionych byłoby poprawienie oczywistego błędu składniowego - zamiana fav_id na post_id, bo pola fav_id nie ma w strukturze tabel. Obawiam się jednak, że nadal możemy otrzymać odpowiedź "wciąż nie dział". Jeśli jednak o to właśnie chodzi, a mamy użyć do tego joina, zamiast całkiem wolnego IN( ), to lepiej byłoby:
Ten post edytował pmir13 13.06.2013, 19:47:57 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 340 Pomógł: 49 Dołączył: 3.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Jeśli użyjemy takiego joina to właściwie cały ten IF możemy zastąpić SELECT 1 AS isFavs, zapewnia to sam warunek złączenia, a nie przypuszczam by o to autorowi chodziło. W ogóle ciężko stwierdzić o co chodziło, bo jesteśmy przygniecieni ogromem informacji zawartych w stwierdzeniu "ale to nie dział". Prawidłową odpowiedzią na najbardziej prawdopodobny scenariusz czyli autorowi chodziło o to, by wyświetlić wszystkie posty oraz informację czy dany post znajduje się w czyichkolwiek ulubionych byłoby poprawienie oczywistego błędu składniowego - zamiana fav_id na post_id, bo pola fav_id nie ma w strukturze tabel. Obawiam się jednak, że nadal możemy otrzymać odpowiedź "wciąż nie dział". Jeśli jednak o to właśnie chodzi, a mamy użyć do tego joina, zamiast całkiem wolnego IN( ), to lepiej byłoby:
Nie psuj zabawy (IMG:style_emoticons/default/biggrin.gif) człowiek pracuje i kombinuje.... Większość pytających oczekuje gotowego rozwiązania, a tylko kilku pracuje, kombinuje i na końcu dochodzi do wniosku, że rozwiązanie jest banalnie proste. Daj szansę (IMG:style_emoticons/default/smile.gif) Natomiast obaj wiemy, że taki JOIN musi być Ten post edytował bpskiba 13.06.2013, 20:36:47 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 31.08.2025 - 20:15 |