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

Wybierz wiersze z tabeli, w której wiersz w innej tabeli o tym samym identyfikatorze ma określoną wartość w innej kolumnie

Właściwie nie poleciłbym do tego JOIN — a raczej poleciłbym „semijoin ", która jest koncepcją algebry relacyjnej, która nie jest bezpośrednio wyrażona w SQL. Sprzężenie częściowe to zasadniczo sprzężenie, w którym chcesz pobrać rekordy tylko z jednej tabeli, ale pod warunkiem, że odpowiadają one rekordom w innej tabeli.

W notacji SQL ta koncepcja jest wyrażana pośrednio, za pomocą IN klauzula , z podzapytanie :

SELECT key, value
  FROM comments
 WHERE key IN
        ( SELECT comment_key
            FROM meta
           WHERE value = 1
        )
;

(MySQL w rzeczywistości przetłumaczy to z powrotem na wewnętrzne sprzężenie częściowe — zasadniczo rodzaj zdegenerowanego sprzężenia wewnętrznego — ale IN klauzula jest naturalnym sposobem wyrażenia go w surowym SQL.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak połączyć wiele kolumn w jedną i sformatować za pomocą niestandardowych ciągów?

  2. Minimalne GRANTy potrzebne mysqldump do zrzucenia pełnego schematu? (Brakuje wyzwalaczy!!)

  3. Importowanie bazy danych Mysql za pomocą Ruby/Chef Recipe for Vagrant

  4. Wyszukiwanie kolumny zawierającej dane CSV w tabeli MySQL pod kątem istnienia wartości wejściowych

  5. Wstawianie wsadowe przy użyciu Native SQL w Hibernate