mysql将一张表拆分两张表来使用

"SELECT
                            n1.id,
                            n1.nav_name,
                            n1.nav_info,
                            n2.id iid,
                            n2.nav_name nnav_name
                    FROM
                            cms_nav n1
                    LEFT JOIN
                            cms_nav n2
                        ON
                            n1.pid=n2.id
                    WHERE
                            n1.id=‘$this->id‘
                        OR
                            n1.nav_name=‘$this->nav_name‘
                    LIMIT
                            1"

中国军事 id=26 它的 pid=1

通过pid=1找到他的主类, id=pid=1

id=1的类别是谁? 然后找到nav_name=军事动态

将一张表拆分两张表来使用

左边的表,标准表。。。。。。 右边的表,是查找匹配的表

通过一张表(左表)的pid找到另外一张表(右表)的id,然后把另一张表的nav_name找出来

时间: 2024-10-23 11:01:24

mysql将一张表拆分两张表来使用的相关文章

SqlSever基础 where inner join 内联表,两个表按照指定条件合作显示内容

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 --创建一个数据库 2 create database helloworld1 3 4 5 --用helloworld1这个数据库 6 use helloworld1 7 8 --创建一个表格teacher 9 create table Teacher 10 ( 11 Id in

Entity Framework表拆分

一.概念 表拆分:一个表拆分成多个实体,例如Photograph表,可以拆分为Photograph和PhotographFullImage两张表. Photograph实体结构: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel.DataAnnotations; 4 using System.ComponentModel.DataAnnotations.Schema; 5 using

mysql高效获取两张表共同字段的交集数据

问题: 例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher A出版社也为很多人出版了书籍,B出版社也为很多人出版了书籍,有sql语句找出这两个出版社为那些人 共同出版书籍,用innerjoin太慢,有没有什么更好的办法? 解答一: 由于不知道你表的索引情况,至于用join还是in和exists不太好说,理论上讲,exists最快.in次之.join

mysql如果在使用多表连查时,两张或多张表出现相同的字段名的解决办法

多表查询时,mysql语句为: select a.*,b.* from 表A名 as a left join 表B名 as b on a.字段名=b.字段名; 当出现两个相同字段名字时,比如相同字段名为name,就可以a.name as aname,b,name as bname; 语句为: select a.name as aname,b.name as bname from as a left join 表B名 as b on a.字段名=b.字段名; mysql如果在使用多表连查时,两张或

Mysql两张表相同ID匹配,输出到新表,删除旧表匹配

0x00:前言. 有两张表,一张表字段是ID-Email,另一张表字段是ID-PWD,想用SQL脚本把这两张表合并合并,因为有相同的ID才可以匹配. 0x01:示例. 一个字段ID:Email 另一个字段是ID:PWD 想要的输出就结果ID:Email:PWD 0x02:Mysql语句. 注意:因为MySQL为了安全,不允许一行执行两条语句(如:LINUX下用&&). 执行前将语句写入SQL脚本文件,文件后缀用.sql,tttt_test是数据库名. 以下是文本. CREATE TABLE

(10)MySQL触发器(同时操作两张表)

什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[用户表]和[日志表],当一个用户被创建的时候,就需要在日志表中插入创建的log日志,如果在不使用触发器的情况下,你需要编写程序语言逻辑才能实现,但是如果你定义了一个触发器,触发器的作用就是当你在用户表中插入一条数据的之后帮你在日志表中插入一条日志信息.当然触发器并不是只能进行插入操作,还能执行修改,删除 触发器的事

mysql关联两张表时的编码问题

Mysql关联两张表时,产生错误提示Illegal mix of collations 1.先用工具把数据库.两张表的编码方式改变 2.这步很重要,需要改变字段的编码方式. ALTER TABLE `表名` CHANGE `dev_chancode` `字段` VARCHAR(32) CHARACTER SET gbk NOT NULL; 总结:在建表时一定注意统一的编码方式,后续搞来搞去超级麻烦. 原文地址:https://www.cnblogs.com/Anders888/p/1144183

取两张mysql表中分别两个字段相同的值

看起来有点绕口吧,举个例子吧,如图 两张表,字段名也不同字段gs 和另一张表 gsmc  的有些值是相同的 我们要做的就是把这个相同的值找出来 会写这个sql语句就可以 只写重点 $sql2 = " select gs from yixiangkh where gs in (select gsmc from qiandan ) " ; //执行 $result2 = $db->query($sql2,0); //取数据 $attr2 = $result2->fetch_al

mysql左连接右连接(查询两张表不同的数据)

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 :right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录:inner join(等值连接) 只返回两个表中联结字段相等的行: 表A数据: 表B数据: 1.查询两张表中都有的记录: sql: SELECT a.* FROM a INNER JOIN b ON a.a_id = b.b_id; 2.查询表A中有,表B中没有的数据: sql: SELECT a.* FROM a LEFT JO