zoukankan      html  css  js  c++  java
  • thinkphp 3.2 完全开发手册地址

    http://document.thinkphp.cn/manual_3_2.html

    JOIN  查询应用

    JOIN方法也是连贯操作方法之一,用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

    join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。

    • INNER JOIN: 如果表中有至少一个匹配,则返回行,等同于 JOIN
    • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
    • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
    • FULL JOIN: 只要其中一个表中存在匹配,就返回行

    join方法可以支持以上四种类型,例如:

    1. $Model = M('Artist');
    2. $Model
    3. ->join('think_work ON think_artist.id = think_work.artist_id')
    4. ->join('think_card ON think_artist.card_id = think_card.id')
    5. ->select();

    join方法支持多次调用,但指定的数据表必须是全称,但我们可以这样来定义:

    1. $Model
    2. ->join('__WORK__ ON __ARTIST__.id = __WORK__.artist_id')
    3. ->join('__CARD__ ON __ARTIST__.card_id = __CARD__.id')
    4. ->select();

    __WORK____CARD__在最终解析的时候会转换为 think_workthink_card

    默认采用INNER JOIN 方式,如果需要用其他的JOIN方式,可以改成

    1. $Model->join('RIGHT JOIN __WORK__ ON __ARTIST__.id = __WORK__.artist_id')->select();

    或者使用:

    1. $Model->join('__WORK__ ON __ARTIST__.id = __WORK__.artist_id','RIGHT')->select();

    join方法的第二个参数支持的类型包括:INNER LEFT RIGHT FULL。

    如果join方法的参数用数组的话,只能使用一次join方法,并且不能和字符串方式混合使用。 例如:

    1. join(array(' __WORK__ ON __ARTIST__.id = __WORK__.artist_id','__CARD__ ON __ARTIST__.card_id = __CARD__.id'))

    使用数组方式的情况下,第二个参数无效。因此必须在字符串中显式定义join类型,例如:

    1. join(array(' LEFT JOIN __WORK__ ON __ARTIST__.id = __WORK__.artist_id','RIGHT JOIN __CARD__ ON __ARTIST__.card_id = __CARD__.id'))
  • 相关阅读:
    Install JDK In Ubuntu
    js初学—实现checkbox全选功能
    js初学—js全自定义单选框
    poj1679The Unique MST(次小生成树模板)
    hdu3486Interviewe(二分是错的)(ST算法RMQ + 判定上下界枚举)
    poj3974 Palindrome(Manacher最长回文)
    poj1734 Sightseeing trip(Floyd求无向图最小环)
    BZOJ1123 [POI2008]BLO(割点判断 + 点双联通缩点size)
    2.2 logistic回归
    神经网络的火热
  • 原文地址:https://www.cnblogs.com/chuanqideya/p/6441932.html
Copyright © 2011-2022 走看看