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

Rodič / dítě ve stejné tabulce

V databázi není žádný význam prvního potomka, prvního potomka můžete získat s minimem id nebo minimum hodnoty, ale hodnoty nejsou uloženy s konkrétním pořadím v tabulce, takže nemůžete říct, která hodnota je první.

Ale za předpokladu, že id je automatický přírůstkový sloupec, pak hodnota prvního potomka je hodnota minimálního id , pak můžete provést toto:

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;

Podívejte se na to v akci zde:

To vám dá:

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

Nebo: Můžete ji získat za minimální hodnotu:

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;

Podívejte se na to v akci:

Tím získáte:

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



  1. Užitečné dotazy na vypršení platnosti hesla/zásady/nastavení oracle EBS

  2. MYSQL, velmi pomalé řazení

  3. Nelze se připojit k RDS mysql DB z Wordpress na Amazon linux EC2 instance

  4. jqGrid Act Strange Znovu načtení dat po vložení a aktualizaci