Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ID z dwóch róznych tabel w jednej kolumnie trzeciej tabeli, nie wiem jak dokładnie nawać mój problem
piotrek24
post 21.07.2008, 09:11:17
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 22.07.2006

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


Czy sytuacja przedstawiona na poniższym schemacie jest poprawna / normalna czy jest to jakiś dziwoląg którego nie powinno się stosować i mam źle zaprojektowaną bazę danych.
Są dwie różniące się budową tabele [tabela 1 i tabela 2], a w trzeciej tabeli [tabela 3] chcę gromadzić wspólne informacje ich dotyczące. I czy relacje pomiędzy tymi trzema tabelami powinny właśnie tak wyglądać?.



Ten post edytował piotrek24 21.07.2008, 09:12:09
Go to the top of the page
+Quote Post
jastu
post 21.07.2008, 09:44:17
Post #2





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


No nie jest to zdrowe rozwiązanie - ten sam efekt możesz uzyskać zapytaniem (union) lub przez zbudowanie widoku. Czemu ma to służyć ? Na twoim miejscu zastanowiłbym sie nad słusznością takiego rozwązania.
Pozdrawiam


--------------------
Powyższy post wyraża jedynie opinię autora w dniu dzisiejszym. Nie może on służyć przeciwko niemu w dniu jutrzejszym. Ponadto autor zastrzega sobie prawo zmiany poglądów, bez podawania przyczyny.
Go to the top of the page
+Quote Post
piotrek24
post 21.07.2008, 10:39:07
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 22.07.2006

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


Tak dzięki za odpowiedź i masz rację zrobię to UNION-em winksmiley.jpg. Chciałem zrobić to już wcześniej, ale nie mogłem sobie poradzić z grupowaniem wartości. To znaczy zawsze dostawałem podwójne wartości jedną z tabeli 1 a drugą z tabeli 2, rozwiązanie znalazłem przed chwilą na innym forum:

  1. SELECT username,postedby,sum(views) AS views FROM (SELECT users.username,
  2. old_news.postedby,
  3. old_news.views
  4. FROM users LEFT JOIN old_news ON users.id = old_news.postedby
  5. UNION ALL
  6. SELECT users.username,
  7. new_news.postedby,
  8. new_news.views
  9. FROM users LEFT JOIN new_news ON users.id = new_news.postedby ) dt
  10. GROUP BY username,postedby
  11. ORDER BY views DESC


O coś takiego właśnie mi cały czas chodziło. Rekordy grupowane są wspólnie dla obydwu tabel.
Wkleiłem może się komuś przyda. Chodzi oczywiście o ogólna ideę.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 09:01