Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Użycie wartości z kolumny jako nazwa tabeli przy join - da radę?
kilab
post
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 19
Dołączył: 4.11.2007

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


Witajcie, tworzę system raportowania treści przez użytkowników. Ze względu na to, że raporty tyczyć się mogą komentarzy, postów, zdjęć, itd. w tabeli trzymam nazwę elementu którego dotyczy raport (żeby było łatwiej, zmieniłem na nazwę tabeli, którego tyczy się raport - comments, posts, photos, itd.).

Tabela z raportami wygląda tak:
id | created | element_id | element_type | author_id

Chciałbym otrzymać:
id, created, element_type.text (comments.text), users.username

I teraz pytanie do was - czy jest możliwość pobrania jednym zapytaniem (treści, nazwy) zgłoszonego elementu razem z datą i nazwą użytkownika? Z loginem usera nie ma problemu, pojawia się on przy join gdy muszę wskazać tabelę dla zgłoszonego elementu z której ma być pobrany tytuł, który chciałbym pobrać z kolumny element_type.

Przychodzi mi tylko do głowy alias (SELECT reports.element_type as type ... JOIN type ON reports.element_id = type.id ...), ale tą droga niestety za daleko nie zajdę (IMG:style_emoticons/default/sad.gif)

Ten post edytował kilab 26.12.2012, 23:06:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
markonix
post
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Hmm, wczoraj miałem ten same problem.
W końcu to puściłem w pętli w PHP bo obiekty się różnią mocno i widoku są różnie wyświetlane.
Oczywiście przyjmujemy że chcesz pobrać kolumnę wspólną dla wszystkich - sam jestem ciekaw czy da radę.
Może UNION albo SWITCH.
Go to the top of the page
+Quote Post
kilab
post
Post #3





Grupa: Zarejestrowani
Postów: 180
Pomógł: 19
Dołączył: 4.11.2007

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


Tak tak, pętla to ostateczność, ale moja natura optymalizatora nakazuje mi najpierw spróbować w SQL (IMG:style_emoticons/default/biggrin.gif)
Wartości kolumny mogą być różne dla kolejnych rekordów (comments, posts, itd.)

Jutro na świeżo jeszcze do tego podejdę, może ktoś coś doradzi do tego czasu (IMG:style_emoticons/default/wink.gif)

edit:

Wyczytałem, że prawdopodobnie można coś takiego osiągnąć używając prepared statements, jednak mój poziom wtajemniczenia SQL nie umożliwia mi odniesienia sukcesu (IMG:style_emoticons/default/sad.gif) Sprawa nie jest szczególnie ważna więc mogę to zrobić w pętli i dwoma zapytaniami, w wolnym czasie wrócę do tego, jak postudiuję trochę więcej SQL.

Ten post edytował kilab 27.12.2012, 12:37:52
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: 14.09.2025 - 22:07