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

jak używać polubienia z sprzężeniem w sql?

Korzystanie z INSTR :

SELECT *
  FROM TABLE a
  JOIN TABLE b ON INSTR(b.column, a.column) > 0

Korzystanie LIKE:

SELECT *
  FROM TABLE a
  JOIN TABLE b ON b.column LIKE '%'+ a.column +'%'

Używanie LIKE z CONCAT:

SELECT *
  FROM TABLE a
  JOIN TABLE b ON b.column LIKE CONCAT('%', a.column ,'%')

Pamiętaj, że we wszystkich opcjach prawdopodobnie będziesz chciał ustawić wartości w kolumnach na wielkie PRZED porównaniem, aby upewnić się, że otrzymujesz dopasowania bez obawy o rozróżnianie wielkości liter:

SELECT *
  FROM (SELECT UPPER(a.column) 'ua'
         TABLE a) a
  JOIN (SELECT UPPER(b.column) 'ub'
         TABLE b) b ON INSTR(b.ub, a.ua) > 0

Najbardziej wydajny będzie ostatecznie zależał od Planu WYJAŚNIJ wyjście.

JOIN klauzule są identyczne z zapisem WHERE klauzule. JOIN składnia jest również określana jako ANSI JOIN, ponieważ zostały znormalizowane. JOIN inne niż ANSI wyglądają tak:

SELECT *
  FROM TABLE a,
       TABLE b
 WHERE INSTR(b.column, a.column) > 0

Nie zamierzam zawracać sobie głowy przykładem LEFT JOIN bez ANSI. Zaletą składni ANSI JOIN jest to, że oddziela ona to, co łączy tabele, od tego, co faktycznie dzieje się w WHERE klauzula.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO::bindParam w pętli foreach, czy wszystkie wartości są takie same?

  2. Aktywuj przed usunięciem MySql

  3. LAST_INSERT_ID() nie jest równe $db->insert_id?

  4. Zainicjuj MariaDB 10.4.12 w CentOS 7.7

  5. znajdź N-ty największy element w SQL