![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 23.10.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam ma mały problem chcę z 3 tabel w bazie wypisać nazwy po ich id
tabela user id haslo login problemy id nazwa user_id tresc id_kat data kategorie id nazwa_k co chcę wyświetlić nazwa pobrana z problemy user pobrany z user tresc pobrane z problemy nazwa_k pobrane z kategorie data pobrane z problemy bo teraz baza danych wywołuje mi się 6 razy a powinna tylko 2 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 18 Dołączył: 7.10.2007 Skąd: Pruszków Ostrzeżenie: (0%) ![]() ![]() |
Użyj left joinów i określ po jakich kolumnach łączą się tabele lub zamiast jednego & użyj && Ja rzadko kiedy łącze tak ze sobą tabelę - przeważnie używam joinów.
----- Właśnie zauważyłem że masz błąd w where
powinno być
Ten post edytował robertpiaty 9.03.2015, 21:00:53 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
i nie & tylko AND
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 18 Dołączył: 7.10.2007 Skąd: Pruszków Ostrzeżenie: (0%) ![]() ![]() |
w MySQL można stosować i && i AND http://dev.mysql.com/doc/refman/5.0/en/log...ml#operator_and Tak samo jak znak nierówności. Jak uczyłem się SQL to zawsze wbijano mi do głowy znak <> a MySQL przyjmie też !=
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
@up tak tylko ze && a nie &, tyle ze to jest nie eleganckie, a dodano bo mysql musialbyc i.. odporny, a druga kwestia to wszelakie ide chyba tego nie znaja choc nie dam glowy bo nie sprawdzalem
![]() A tak swoja droga to uzywany tu jest join tylko ten napis zastepowny jest , Bo znow programisci byli zbyt leniwi ![]() Ten post edytował com 9.03.2015, 23:45:34 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 4.03.2015 Ostrzeżenie: (10%) ![]() ![]() |
"Tabela 'nieprzeczytane':
- userID - msgID albo topicID (co niesie za sobą pewne wady, ale też uproszczenia) Przy odświeżaniu strony przez użytkownika, sprawdzamy datę jego ost. odświeżenia strony i pobieramy z tabeli postów ID tych wiadomości, które mają datę > niż data użytkownika. Uzupełniamy tabelę tymi wpisami. Aby zapobiec przepełnieniu, możemy przy dodawaniu rekordów do tabeli sprawdzić jeszcze, czy np. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 18 Dołączył: 7.10.2007 Skąd: Pruszków Ostrzeżenie: (0%) ![]() ![]() |
[...] A tak swoja droga to uzywany tu jest join tylko ten napis zastepowny jest , Bo znow programisci byli zbyt leniwi ![]() Tak masz rację to też jest join, chociaż tak nie do końca. Pamiętam że kiedyś miałem z tym problem. Nie pamiętam dokładnie z czym, ale chyba chodziło o coś w tym stylu
I chyba właśnie w tym przypadku w klauzuli on przy left join krzyczał że nie zna b.d_id. Tak jak pisałem nie pamiętam dokładnie o co chodziło ale chyba o to. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
robertpiaty owszem zgadam się z Toba w zupełności, nie każdego joina da się , zastąpić. Dlatego też powstało mimo wszystko tyle ich rodzai, ale czasem się da, niestety złączenia trzeba zrozumieć żeby nie było problemów. Tu nawet to zostało obrazowo pokazane http://www.sitepoint.com/understanding-sql...mysql-database/. Oczywiście to do autora tematu kieruje
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 07:38 |