我在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'
感谢所有帮助过的人
答案 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>`
答案 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中创建外键的教程的链接。