Объединить несколько таблиц по известному идентификатору - PullRequest
0 голосов
/ 31 августа 2011

У меня есть несколько (13 номеров) таблиц, которые имеют одну общую черту: их ID.

Дело в том, что мне нужно запросить результаты (может отличаться от одного до нескольких для одной таблицы) для одного идентификатора и вернуть все результаты с таким идентификатором - это не UID.

У меня есть одна таблица, которая должна / могла бы быть «отправной» точкой, откуда соединяются другие таблицы и где опрашиваемый идентификатор присутствует в каждом случае.

Не хочу публиковать то, что я пробовал до сих пор - я хочу избежать смеха. Чтение того, что я пишу в Mysql, близко к тому, чтобы увидеть, как ребенок идет своими первыми шагами. Милый и ... смешной.

Спасибо за любую подсказку, предложение и хороший комментарий!

1 Ответ

3 голосов
/ 31 августа 2011

Как я понимаю, у вас есть одна родительская таблица со значениями идентификаторов и много похожих дочерних таблиц, которые должны быть связаны с родительской таблицей. Проверьте этот запрос. Это то, что вы хотите?

SELECT * FROM parent_table t
LEFT JOIN child_table1 t1
  ON t.id = t1.id
LEFT JOIN child_table2 t2
  ON t.id = t2.id
...
LEFT JOIN child_table<n> t<n>
  ON t.id = t<n>.id

Или этот вариант; в этом случае все дочерние таблицы будут возвращены в строках -

SELECT * FROM parent_table t
LEFT JOIN (
  SELECT * FROM child_table1
  UNION ALL 
  SELECT * FROM child_table2
  UNION ALL 
  ...
  SELECT * FROM child_table<n>
  UNION ALL
) t1
ON t.id = t1.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...