如何在 PHPmyAdmin 中进行表连接
Posted
技术标签:
【中文标题】如何在 PHPmyAdmin 中进行表连接【英文标题】:How to make Table Joins in PHPmyAdmin 【发布时间】:2012-01-31 00:55:06 【问题描述】:我在 phpmyadmin 中有 2 个表需要加入
tracklisting
是我的,catelogue
是另一个,保存为innodb
他们都有一个专栏CAT.NO
,并希望将其加入此专栏。在目录中它是主要的,在跟踪列表中它被索引
catelogue
是我的父母,tracklisting
是孩子,因为它没有目录中每条记录的信息。我相信这是正确的,除非我错了
如何做到这一点,以便当我查询 tracklisting
中的列时,它只会显示“catelogue”的匹配项,因为我想知道它在哪个专辑上,而不是我的整个 60000 多个目录
这可以通过phpmyadmin的界面来完成还是这是一个sql语句
非常感谢
编辑:
这是有效的代码
SELECT *
FROM tracklisting
INNER JOIN catelogue ON catelogue.`CAT NO.` = tracklisting.`TRACKLISTING CAT NO.`
WHERE tracklisting.`ARTIST` LIKE 'placebo'
感谢所有提供帮助的人
【问题讨论】:
【参考方案1】:假设你的 tracklisting 有一个 id 并且你想用它查询:
select * from tracklisting t
inner join catelogue c on c.cat.no = t.cat.no
where t.id = 1
【讨论】:
【参考方案2】:您可以使用 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
【讨论】:
【参考方案3】:我不知道这是否可以通过接口来完成,但是用sql来完成
SELECT *
FROM
tracklisting t
INNER JOIN catelouge c on c.catno=t.catno
WHERE t.id = 1
【讨论】:
只需要一些编辑来匹配我所有的列,但这就是我想要的。 O 和 where 子句更改为我的搜索条件【参考方案4】:实际的连接发生在 SQL 语句中,尽管对于 InnoDB 等某些存储类型,您还可以创建外键引用,在数据库级别强制关系,以便您的插入需要正确的记录,并且您的删除是如果存在子记录,则受到限制。
这是为您的 SQL 查询执行连接语法的一种方法:
SELECT t.* FROM tracklisting t, catalogue c
WHERE `t.CAT.NO` = `c.CAT.NO`
编辑:Here 是指向在 phpMyAdmin 中创建外键的教程的链接。
【讨论】:
如果我设置了外键,phpmyadmin 是否能够创建我正在寻找的 sql 代码,还是必须手动输入? 很遗憾,不,phpMyAdmin 不会根据外键为您创建加入代码。一些 PHP 框架会为您完成工作,例如 CakePHP 等。在这些框架中,如果您配置了外键关系,那么框架会在查询中执行所有必要的连接。以上是关于如何在 PHPmyAdmin 中进行表连接的主要内容,如果未能解决你的问题,请参考以下文章
我无法使用 springboot 连接到我的 mysql 数据库我使用相同的密码和名称与 phpmyadmin 连接得很好
phpmyadmin.pma_table_uirefs 使用虚拟机不存在