如何在PHPmyAdmin中创建表连接

时间:2011-12-31 10:38:42

标签: mysql sql phpmyadmin

我在phpmyadmin中有2个表需要加入

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 个答案:

答案 0 :(得分:5)

我不知道这是否可以通过界面完成,但是使用sql

SELECT * 
FROM 
  tracklisting t 
  INNER JOIN catelouge c on c.catno=t.catno 
WHERE t.id = 1

答案 1 :(得分:1)

您可以使用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

答案 2 :(得分:0)

假设您的跟踪列表具有ID,并且您想要使用它进行查询:

select * from tracklisting t
inner join catelogue c on c.cat.no = t.cat.no
where t.id = 1

答案 3 :(得分:0)

实际连接发生在SQL语句中,尽管对于某些存储类型(如InnoDB),您还可以创建在数据库级别强制执行关系的外键引用,以便您的插入需要适当的记录并且删除是如果存在儿童记录则受限制

以下是为SQL查询执行连接语法的一种方法:

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

编辑:Here是指向在phpMyAdmin中创建外键的教程的链接。