![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 5.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam dwie tabele. Dla potrzeb pytania przyjmijmy ich strukturę: PIERWSZA TABELA:
DRUGA TABELA:
Potrzebuję wyświetlić wszystkie rekordy z tabeli A których ID jest gdziekolwiek wpisane w kolumnie someid tabeli B... Nie mam pojęcia jak się do tego zabrać. Warto też zaznaczyć, iż muszę to rozwiązać za pomocą SQL'a. Mógłbym pobrać dwie tabele i sprawdzić je za pomocą PHP, ale nie o to chodzi w tym skrypcie. Z góry dziękuję za odpowiedź i pozdrawiam tlaguz Ten post edytował tlaguz 28.12.2009, 00:27:16 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 5.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Niestety otrzymuję taki błąd:
#1054 - Unknown column 'tabela2.someid' in 'where clause' :/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 28 Dołączył: 9.08.2004 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Witam,
może spróbuj podzapytaniem:
Pozdrawiam [dodane] W razie potrzeby w podzapytaniu dopisz 'distinct' do 'someid', żeby każdą wartość zwracało tylko raz. [/dodane] Ten post edytował cim 28.12.2009, 01:21:54 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 5.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Niestety otrzymuję taki błąd: #1054 - Unknown column 'tabela2.someid' in 'where clause' :/ (IMG:style_emoticons/default/smile.gif) wystarczyło, żebyś w miejsce tabela2 wstawił rzeczywistą nazwę swojej drugiej tabeli. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 28 Dołączył: 9.08.2004 Skąd: Stargard Ostrzeżenie: (0%) ![]() ![]() |
Poniżej MySQL 5.4 potencjalnie bardzo wolne zapytanie. Lepiej przepisać na JOINa. A tego nie wiedziałem, zn. tak jak poniżej będzie wydajniej? Bo efekt w wynikach ten sam.
Pozdrawiam Ten post edytował cim 28.12.2009, 01:43:49 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 5.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:style_emoticons/default/smile.gif) wystarczyło, żebyś w miejsce tabela2 wstawił rzeczywistą nazwę swojej drugiej tabeli. Wstawiłem, wstawiłem ^^ Aż taki głupi to ja nie jestem. Chciałem tylko nawiązać do pierwszego mojego postu. Niemniej jednak już sobie poradziłem Dzięki wszystkim za pomoc! |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
A tego nie wiedziałem, zn. tak jak poniżej będzie wydajniej? Bo efekt w wynikach ten sam. Pozdrawiam Im więcej wierszy w obu tabelach (zwłaszcza w tab1), tym większa różnica będzie na korzyść JOINa. Dla porządku ja bym dopisał, że to INNER JOIN. http://dev.mysql.com/doc/refman/5.1/en/rew...subqueries.html Ten post edytował Mchl 28.12.2009, 10:29:51 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 16:26 |