sql >> Databáze >  >> RDS >> Mysql

MySQL:Ignorujte vybraný sloupec při použití DISTINCT

Jsou zde dva případy. Řekněme, že máte data

A  B  C   (columns)
a  b  c1
a  b  c2

Vezmeme-li různé hodnoty A, B, dostaneme pouze jeden výsledek (a,b) se dvěma hodnotami pro sloupec C. Otázkou tedy je, zda chcete vidět všechny hodnoty C nebo jen jednu hodnotu pro každou odlišnou hodnotu sloupců A a B ?

Pokud chcete vidět pouze jednu hodnotu C, můžete napsat

SELECT A, B, MAX(C) FROM YourTable
  GROUP BY A, B

Na druhou stranu, pokud chcete vidět všechny hodnoty pro C, pak

SELECT DISTINCT A, B, C FROM YourTable WHERE ROW(A,B) IN 
  (SELECT A, B FROM YourTable
     GROUP BY A, B)

vám to dává. Tato poslední alternativa je nutná, pokud jsou v tabulce další sloupce.



  1. Jak používat .htaccess pro krásné odkazy

  2. SQL SELECT AND operátor

  3. Vnitřní spojení vs kde

  4. Jak vložím datum do mysql jako parametr?