Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] podzapytanie przy wyszukiwaniu pełnoteksotwym
szybki
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


  1. SELECT home.*, c.name AS city, c.country_id AS country_id, co.name AS country_name
  2. FROM home AS home, cities AS c, countries AS co
  3. WHERE home.city_id=c.id AND
  4. co.id = c.country_id AND
  5.  
  6. MATCH (home.name, home.description) AGAINST("+'.$_GET['search'].'" IN BOOLEAN MODE)
  7. ORDER BY home.id DESC LIMIT 4 OFFSET 4


Jak do tego zapytania dodać kolejne, aby na podstawie ID pobrało dane z innej tabeli?

Czyli aby dodatkowo wykonało sie:

  1. SELECT * FROM b2h WHERE home_id=home.id


Ten post edytował szybki 1.10.2015, 08:52:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
JanuszPHP
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 10.08.2015

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


  1. SELECT home.*,b.*, c.name AS city, c.country_id AS country_id, co.name AS country_name
  2. FROM home AS home, cities AS c, countries AS co
  3. JOIN b2h b WHERE b.home_id=home.id
  4. WHERE home.city_id=c.id AND
  5. co.id = c.country_id AND
  6.  
  7. MATCH (home.name, home.description) AGAINST("+'.$_GET['search'].'" IN BOOLEAN MODE)
  8. ORDER BY home.id DESC LIMIT 4 OFFSET 4
Go to the top of the page
+Quote Post
szybki
post
Post #3





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


Miałem już coś takiego, dostaje komunikat

  1.  
  2. Warning: PDO::query(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE home.city_id=c.id AND co.id = c.country_id AND ' at line 4 in /var/www/html/w/x.php on line 35
  3.  
  4. Fatal error: Call to a member function fetchAll() on boolean in /var/www/html/w/x.php on line 41
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


JOIN b2h b ON
Go to the top of the page
+Quote Post
szybki
post
Post #5





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


Również nie działa, błąd jak wyżej, a kod zmieniłem według wskazówek.
Go to the top of the page
+Quote Post
JanuszPHP
post
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 10.08.2015

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


Zagalopowałem się...
to:
  1. JOIN b2h b WHERE b.home_id=home.id


na to:
  1. JOIN b2h b ON b.home_id=home.id
Go to the top of the page
+Quote Post
szybki
post
Post #7





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


Może jestem już zmęczony i źle to wpisałem, ale co jeśli w tabeli b2h o home_id znajduje się więcej niż 1 rekord a chciałbym żeby pobierały się wszystkie.

I jednak jest błąd w tym zapytaniu, ponieważ nie pobiera wszystkich rekordów z danej tabeli po JOIN a tylko ostatni.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Pokaż zapytanie
Go to the top of the page
+Quote Post
szybki
post
Post #9





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


  1. SELECT home.*,b.*, c.name AS city, c.country_id AS country_id, co.name AS country_name
  2. FROM home AS home, cities AS c, countries AS co
  3. JOIN b2h b ON b.home_id=home.id
  4. WHERE home.city_id=c.id AND
  5. co.id = c.country_id AND
  6.  
  7. MATCH (home.name, home.description) AGAINST("+'.$_GET['search'].'" IN BOOLEAN MODE)
  8. ORDER BY home.id DESC LIMIT 4 OFFSET 4


W takim zapytaniu pobiera mi wszystkie rekordy tyle razy co jest rekordów w innej tabeli. a jak zrobić aby pobierały się w jednej tablicy dla danego rekordu?

Dokładnie to JOIN b2h b ON b.home_id=home.id pobiera jeszcze raz rekord, zamiast dodać go do tablicy dla danego id.

Ten post edytował szybki 5.10.2015, 10:32:50
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: 23.08.2025 - 13:02