Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Łączenie dwóch tabel z sql JOIN?

Musisz pogrupować według czegoś lub agregacji GROUP_CONCAT() zbierze wszystkie rzędy w jeden:

GROUP BY  tour_foreign.id 

Użyj:

$query = $this -> db -> query('
    SELECT
       @rownum := @rownum + 1 rownum,
       tour_foreign.id, 
       tour_foreign.name, 
       MIN(tour_foreign_residence.name_re) AS name_re, 
       tour_foreign.service, 
       tour_foreign.date_go, 
       tour_foreign.date_back, 
       tour_foreign.term,
       tour_foreign.useradmin_submit,
       tour_foreign.date_submit,
       GROUP_CONCAT( tour_foreign_residence.name_re 
                     ORDER BY tour_foreign_residence.name_re 
                     SEPARATOR " $ "
                   ) AS name_re_all
    FROM   tour_foreign 
      INNER JOIN tour_foreign_residence 
        ON ( tour_foreign.id = tour_foreign_residence.relation )
      JOIN (SELECT @rownum := 0) r
    WHERE  tour_foreign.name LIKE "%' . $find . '%" 
        OR tour_foreign_residence.name_re LIKE "%' . $find . '%"
    GROUP BY  tour_foreign.id ');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wolny czas startu MySQL w trybie GTID? Problemem może być rozmiar pliku dziennika binarnego

  2. Mysql:Kolejność wyników z select <nazwa pola> z jest inna niż kolejność wyników z select * z

  3. Hybrydowe obciążenia baz danych OLTP/Analytics:replikacja danych MySQL do ClickHouse

  4. MySQL — wyzwalacz aktualizacji tej samej tabeli po wstawieniu

  5. Używanie pliku .php do generowania zrzutu MySQL