PHP MYSQL JOIN QUERY 2数据库,where table1.id = table2.id,如何将table2.content显示为table1.id

时间:2011-07-02 17:32:38

标签: php mysql sql

我试图整理一个允许我在我的网站上动态显示链接的脚本。

我有2张桌子。第一个domains每行可以有两个值。这些是domIddomain。下一个表links每行可以包含几个值,我在这里使用的是domId(匹配domains表的domId)desc和`link ”。

到目前为止,这是我的查询:

$linkQuery2 = 'SELECT `link`,`desc`,`domId` 
                 FROM `links` 
                WHERE `catId`="'.$pageCat.'" 
                   && (`modId`="1" || modId="'.$pageModel.'") 
             ORDER BY `domainId` ASC 
                LIMIT ' . $from . ', ' . $max_results2;    

以下是我用来显示我需要的信息的代码:

$linkLoop2 = '';
$linkAd = $row['link'];
$linkDesc = stripslashes($row['desc']);
$linkDomain = stripslashes($row['id']);
$linkLoop = '<ul class="bymodel-dllinks">';
$linkLoop2 .= '<li><a href="'.$linkAd.'" target="_tab">'.$linkDesc.' '.$linkDomain.'</a></li>';
$linkLoop3 = '</ul>';

我想要做的是找到一种方法,以便当$ linkDomain被回显时,它将显示我存储在domain表的domains字段中的文本。目前,当回显$linkDomain时,它将显示303,这是我将链接到的网站的domId

2 个答案:

答案 0 :(得分:1)

使用Join从domainstable中选择域名:

$linkQuery2 = 'SELECT l.link,l.desc,l.domId,d.domain
             FROM links l LEFT JOIN domains d ON d.domid = l.domid
            WHERE l.catId="'.$pageCat.'" 
               && (l.modId="1" || l.modId="'.$pageModel.'") 
         ORDER BY l.domainId ASC 
            LIMIT ' . $from . ', ' . $max_results2;

答案 1 :(得分:0)

domain列添加到您的select语句中。

$linkQuery2 = 'SELECT `link`,`desc`,`domId`,`domain`
             FROM `links` 
            WHERE `catId`="'.$pageCat.'" 
               && (`modId`="1" || modId="'.$pageModel.'") 
         ORDER BY `domainId` ASC 
            LIMIT ' . $from . ', ' . $max_results2;

$linkDomain更改为

$linkDomain = stripslashes($row['domain']);