Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 2 tabele o takiej samej strukturze innych danych - da sie jednym selectem?
swist666
post
Post #1





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 14.05.2004
Skąd: Wrocław

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


Dzień dobry,

Mam 2 tabele o identycznej strukturze (id,text,start_date,end_date) ale zawierają różne dane. Czy jest opcja żeby jednym selectem wylistować jedną pod drugą?

Przykład:
tabela_a
1:"text 1":"2014-03-21 12:30:00","2014-03-21 12:40:00"
2:"text 2":"2014-03-22 12:30:00","2014-03-22 12:40:00"

tabela_b
1:"text3":"2014-03-23 12:30:00","2014-03-23 12:40:00"

Zapytanie sql (jego właśnie szukam). Rezultat:
1:"text 1":"2014-03-21 12:30:00","2014-03-21 12:40:00"
2:"text 2":"2014-03-22 12:30:00","2014-03-22 12:40:00"
1:"text3":"2014-03-23 12:30:00","2014-03-23 12:40:00"

Dodam że nie chodzi tu o join (nie chcę dodać jeżeli się zgadzają jakieś warunki. Po prostu jedna pod drugą jak leci)

Ten post edytował swist666 20.03.2014, 18:18:24
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


http://dev.mysql.com/doc/refman/5.5/en/union.html

Polecam jednak zmienić strukturę bazy i trzymać dane w jednej tabeli (ew. dodać jeszcze dodatkową kolumnę rozróżniającą).
Go to the top of the page
+Quote Post
swist666
post
Post #3





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 14.05.2004
Skąd: Wrocław

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


Ok, dzięki za szybką odpowiedź. A jeżeli jedna tabela ma jedno dodatkowe pole (np. "komentarz") a druga nie ma czy jest opcja żeby to jakoś wyciągnąć?

Np. rezultat tego typu

1:"text 1":"2014-03-21 12:30:00","2014-03-21 12:40:00", "komentarz"
2:"text 2":"2014-03-22 12:30:00","2014-03-22 12:40:00", "komentarz"
1:"text3":"2014-03-23 12:30:00","2014-03-23 12:40:00", NULL

NULL - bo nie ma takiego pola

Wiem że to nie jest idealne rozwiązanie ale potrzebuje coś takiego zrobić na istniejącej bazie.
Go to the top of the page
+Quote Post
redeemer
post
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


  1. SELECT * FROM tabelaA UNION SELECT *,NULL FROM tabelaB

Go to the top of the page
+Quote Post
swist666
post
Post #5





Grupa: Zarejestrowani
Postów: 152
Pomógł: 1
Dołączył: 14.05.2004
Skąd: Wrocław

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


Ostatnia sprawa (IMG:style_emoticons/default/smile.gif) A jak jest takich tabel parę więcej?

SELECT *,NULL FROM a UNION SELECT *,NULL FROM b UNION SELECT *,NULL FROM c

zwraca błąd: The used SELECT statements have a different number of columns
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Masz wyraźnie napisane, że zapytania zwracają inną liczbę kolumn.
Musisz dopasować liczbę kolumn we wszystkich zapytaniach, adekwatnie do przykładu, który podał redeemer.
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: 19.09.2025 - 04:59