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

Rodzic / Dziecko w tym samym stole

Nie ma znaczenia pierwszego dziecka w bazie danych, możesz uzyskać pierwsze dziecko przez minimalną wartość id lub minimum wartości, ale wartości nie są przechowywane w określonej kolejności w tabeli, więc nie można stwierdzić, która wartość jest pierwszą.

Ale zakładając, że id jest kolumną auto incremental, wtedy wartość pierwszego dziecka jest wartością minimalnego id , możesz to zrobić:

SELECT
  t1.parent,
  t2.name,
  t1.value
FROM tablename AS t1
INNER JOIN
(
  SELECT MIN(id) AS id, parent
  FROM tablename
  GROUP BY parent
) AS t22 ON t22.id = t1.id AND t1.parent = t22.parent
INNER JOIN tablename AS t2 ON t1.parent = t2.id;

Zobacz to w akcji tutaj:

To da ci :

| PARENT | NAME | VALUE |
-------------------------
|      1 |  aaa |   111 |
|      3 |  ccc |   333 |

Lub: Możesz to uzyskać za minimalną wartość:

SELECT
  t1.parent,
  t2.name,
  MIN(t1.value) AS value
FROM tablename AS t1
INNER JOIN tablename AS t2 ON t1.parent = t2.id
GROUP BY t1.parent, t2.name;

Zobacz to w akcji:

To da ci:

| PARENT | NAME | VALUE |
-------------------------
|      1 |  aaa |   111 |
|      3 |  ccc |   333 |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw wartości Array wstawiaj do pojedynczego identyfikatora do bazy danych mysql za pomocą php i PDO

  2. Jak wstawić wiele wartości pola tekstowego w jednym polu o różnym identyfikatorze?

  3. Mariadb - Każda partia wydłużonego czasu wykonania wkładki stopniowo się wydłuża

  4. Załaduj plik danych MySQL

  5. java.sql.SQLException:odmowa dostępu dla użytkownika „[email protected]”@„localhost” (przy użyciu hasła:TAK)