Как сделать объединение таблиц в PHPmyAdmin - PullRequest
4 голосов
/ 31 декабря 2011

У меня есть 2 таблицы в phpmyadmin, которые нужно объединить

tracklisting - это моя, а catelogue - другая, и они сохраняются как innodb

Они обе имеют столбец CAT.NO и хотел бы присоединиться к этому столбцу.В catelogue он является основным, а в треклисте он индексируется

catelogue - мой родитель, а tracklisting - дочерний, поскольку у него нет информации для каждой записи в catelogue.Я считаю, что это будет правильно, если я не ошибаюсь

Как мне сделать это, чтобы при запросе к столбцу в tracklisting он вызывал совпадения только для 'catelogue', потому что я хочу знать, чтоальбом включен, а не весь мой 60000+ catelogue

Может ли это быть сделано с помощью интерфейса phpmyadmin или это заявление sql

Большое спасибо

РЕДАКТИРОВАТЬ:

Это был код, который работал

SELECT *
FROM tracklisting
INNER JOIN catelogue ON catelogue.`CAT NO.` = tracklisting.`TRACKLISTING CAT NO.`
WHERE tracklisting.`ARTIST` LIKE 'placebo'

Спасибо всем, кто помог

Ответы [ 4 ]

5 голосов
/ 31 декабря 2011

Я не знаю, можно ли это сделать с помощью интерфейса, но с помощью sql

SELECT * 
FROM 
  tracklisting t 
  INNER JOIN catelouge c on c.catno=t.catno 
WHERE t.id = 1
1 голос
/ 31 декабря 2011

Вы можете сделать запрос с помощью LEFT JOIN:

SELECT * FROM tracklisting LEFT JOIN catelogue ON tracklisting.`CAT.NO` = catelogue.`CAT.NO` WHERE tracklisting.`<id-field>` = <id-value>`

http://dev.mysql.com/doc/refman/5.0/en/join.html

0 голосов
/ 31 декабря 2011

Фактическое объединение происходит в операторе SQL, хотя с определенными типами хранения, такими как InnoDB, вы также можете создавать ссылки на внешние ключи, которые обеспечивают связь на уровне базы данных, так что для вставок требуется наличие надлежащих записей, а удаление - ограничено, если существуют дочерние записи.

Вот один из способов сделать синтаксис соединения для вашего SQL-запроса:

SELECT t.* FROM tracklisting t, catalogue c
WHERE `t.CAT.NO` = `c.CAT.NO`

EDIT: Здесь - ссылка на учебник по созданию внешних ключей в phpMyAdmin.

0 голосов
/ 31 декабря 2011

Предполагая, что у вашего трек-листа есть идентификатор, и вы хотите запросить его:

select * from tracklisting t
inner join catelogue c on c.cat.no = t.cat.no
where t.id = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...