Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wynik pierwszego zapytania zalezny od drugiego
Arriss
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 7.02.2009

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


Potrzebuje zapytanai ktore poda mi wyniki z tabeli tabela1 wtedy i tylko wtedy gdy istnieja wpisy w tabeli2 z tym ze rodzaj z tabeli2 ma sie rownac id z tabeli1. Prosze o pomoc.
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




O INNER JOIN słyszał?
Go to the top of the page
+Quote Post
Arriss
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 7.02.2009

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


Slyszal, nawet probowal, nie mam problemu polaczyc mam problem zrobic zeby znalezc tylko te wyniki ktore maja jakies wpisy w 2 tabeli przyklad

tabela1
id | nazwa
1 | nazwa1
2 | nazwa 2

tabela2

suma | rodzaj
2 | 1
5 | 1

i chce zapytanie ktore da mi w odpowidzi nazwa z tabeli1 (ale tylko nazwa1 bo ona ma wpisy w tabeli 2) oraz MIN z tabeli2

Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No to robi się to właśnie za pomocą INNER JOIN
Go to the top of the page
+Quote Post
Arriss
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 7.02.2009

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


Moglbys podac jakies przykladowe zapytanie tego typu lub jakis dobry tutek gdzie bedzie o tym?
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://www.codinghorror.com/blog/archives/000976.html
Go to the top of the page
+Quote Post
Arriss
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 7.02.2009

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


Trwa to jeszcze dluzej niz wczesniejsze 2 zapytania. gdy dla 1 przypada 100 000 wpisow a dla innych 0 ciezko w logicznym niezamulonym czasie wyszukac te ktore maja chodz 1 wpis i wypisac najnizsza wartosc. masz jakis pomysl jak to zoptymalizowac?
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Podaj zapytanie
Następnie wynik
  1. EXPLAIN [twoje_zapytanie_select]

A następnie podaj struktury tabel
  1. SHOW CREATE TABLE [nazwa_tabeli]

Bo bez tego nic nie możemy powiedzieć
Go to the top of the page
+Quote Post
Arriss
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 7.02.2009

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


  1. SELECT * FROM gielda_kody_rodzaj INNER JOIN gielda_kody_oferty ON gielda_kody_rodzaj.id = gielda_kody_oferty.rodzaj


  1. id select_type TABLE type possible_keys KEY key_len ref rows Extra
  2. 1 SIMPLE gielda_kody_oferty ALL NULL NULL NULL NULL 90265
  3. 1 SIMPLE gielda_kody_rodzaj eq_ref PRIMARY PRIMARY 4 gielda.gielda_kody_oferty.rodzaj 1



  1. gielda_kody_rodzaj CREATE TABLE `gielda_kody_rodzaj` (\n `id` int(8) NOT NULL AUTO_INCREMENT,\n `nazwa` varchar(128) character SET utf8 collate utf8_polish_ci NOT NULL,\n `min` varchar(255) character SET utf8 collate utf8_polish_ci NOT NULL,\n `max` varchar(255) character SET utf8 collate utf8_polish_ci NOT NULL,\n `prefix` varchar(255) character SET utf8 collate utf8_polish_ci NOT NULL,\n `www` varchar(255) character SET utf8 collate utf8_polish_ci NOT NULL,\n `admin` varchar(255) character SET utf8 collate utf8_polish_ci NOT NULL,\n PRIMARY KEY (`id`)\n) ENGINE=MyISAM AUTO_INCREMENT=142 DEFAULT CHARSET=latin2


  1. gielda_kody_oferty CREATE TABLE `gielda_kody_oferty` (\n `id` int(8) NOT NULL AUTO_INCREMENT,\n `rodzaj` int(128) NOT NULL,\n `cena` decimal(65,2) NOT NULL,\n `nick` varchar(255) character SET utf8 collate utf8_polish_ci NOT NULL,\n `data` datetime NOT NULL,\n `kod` varchar(255) NOT NULL,\n `admin` varchar(255) NOT NULL,\n `stat` int(1) NOT NULL DEFAULT '0',\n PRIMARY KEY (`id`)\n) ENGINE=MyISAM AUTO_INCREMENT=116612 DEFAULT CHARSET=latin2
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




W obu tabelach zmień silnik bazy danych na InnoDB ( w ustawieniach tabeli)
Dodaj index na polu "region" w tabeli gielda_kody_oferta.
Zamiast * wypisz liste pól, które chcesz pobrać bo wszystkie raczej nie są Ci potrzebne.
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: 10.06.2026 - 06:58