Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pobranie dwóch kolumn z jednej tabeli jednocześnie
mb83
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 2.02.2012

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


Witam,

Pytanie mam: czy da się pobrać jednym zapytaniem select pobrać dwie kolumny z jednej tabeli?
Albo za pomocą np. pobranego elementu id wpisu pobrać dodatkowo jeszcze np. nazwę kategorii?

Przykład:
Mam wpis:

id | tytul | kategoria

Pobieram wpis o numerze np. 104 a pod nim wypisuje wpisy o takiej samej kategorii.

Wiem, że można to zrobić na zasadzie łączenia tabel ale tutaj tak się nie da ponieważ wszystkie informacje są w jednej tabeli.


Dzięki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Problem z php nie ma zadnego zwiazku. Przenosze
2)
Cytat
Wiem, że można to zrobić na zasadzie łączenia tabel ale tutaj tak się nie da ponieważ wszystkie informacje są w jednej tabeli.

Nic nie stoi na przeszkodzie łączyc ze sobą te samą tabele. Musisz jej tylko nadac inny alias
Go to the top of the page
+Quote Post
mb83
post
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 2.02.2012

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


a w jaki sposób ten alias nadać? concat? jak sformułować zapytanie?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




LEFT JOIN
Go to the top of the page
+Quote Post
mb83
post
Post #5





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 2.02.2012

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


czy mogę prosić o jakieś przykładowe zapytanie?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Na co przyklad? Na left joi z aliasem??
http://dev.mysql.com/doc/refman/5.0/en/join.html
Prosze cie bardzo. Opis z całą masą przykładów.
Go to the top of the page
+Quote Post
mb83
post
Post #7





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 2.02.2012

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


ok, dałem radę.
pozostał tylko jeszcze jeden problem:
jak pobiorę newsa numer 104 i pod nim wypiszę inne newsy pasujące do kategorii to jak zrobić aby nie był wyświetlany news 104 w tej liście?

jeśli użyję 'not like='104' to daje mi to wszystkie kategorie (a nie tą jedną przypisaną dla 104).

limit też nie za bardzo pasuje bo pobrany id musiałby być albo najmniejszy albo największy.

dzięki za wyrozumiałość, czasami najprostsze rozwiązania są najgorsze :-)
Go to the top of the page
+Quote Post
mar1aczi
post
Post #8





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Tak po polsku:
Wybierz wszystkie newsy, które należą do tej samej kategorii co news 104 i numer newsa jest różny od 104 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
mb83
post
Post #9





Grupa: Zarejestrowani
Postów: 113
Pomógł: 0
Dołączył: 2.02.2012

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


  1. select k.kategoria, b.kategoria, b.tytul, b.id from newsy k left join newsy b on k.kategoria=b.kategoria where b.id = '104'


coś źle napisałem?

a jak użyję:

  1. select k.kategoria, b.kategoria, b.tytul, b.id from newsy k left join newsy b on k.kategoria=b.kategoria where b.id <> '104'


to daje wszystkie newsy, które mają takie same kategorie. czyli ogólnie mówiąc wszystkie :-)
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Do JOIN masz dodac warunek na roznosc od 104 a nie do WHERE.... Where ma pozostac bez zmian
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:25