MySQL加入,如何输出关系"正确的方式"

sub*_*ero 0 php sql database join database-relations

首先,请原谅我糟糕的主题标题.我根本不知道如何制定这个问题或谷歌后面的内容,所以如果这是一个容易回答的问题,请不要开枪.

假设我有以下表格:

[作者] id,姓名

[NEWS] id,item,author_id

如果我想显示一个新闻项并输出相应的作者(存储在author_id中),我会做以下查询:

SELECT * FROM `news` JOIN `authors` ON news.author_id = authors.id
Run Code Online (Sandbox Code Playgroud)

然后通过做这样的事情输出它

$Q = "SELECT * FROM news JOIN authors ON news.author_id=news.id";

$query = $this->lite->query($Q) or die($this->lite->error); 

$result=null; while($obj = $query->fetch_object()){
        $result.= '<li>'.$obj->item. 'by ' . $obj->name . '</li>';
}
Run Code Online (Sandbox Code Playgroud)

这里,$ obj-> name将包含作者的名称并将成功输出.

那么,如果"名称"字段被称为"项目",会发生什么?显然会有一些冲突.根据我之前在Propel和symfony的经验,我会做这样的事情:getAuthorId() - > getName() - 但对于这个项目,我需要从头开始编写SQL.

Qua*_*noi 6

切勿*在生产代码中使用语法.

重写您的查询,如下所示:

SELECT  news.item AS news_item, author.name AS author_name
FROM    `news`
JOIN    `authors`
ON      news.author_id = authors.id
Run Code Online (Sandbox Code Playgroud)

,根据需要对字段进行别名以避免命名冲突.