SELECT *
FROM tableA a
INNER JOIN tableB b
ON a.someColumn = b.otherColumn
INNER JOIN tableC c
ON b.anotherColumn = c.nextColumn
如果表 A 和表 B 在字段中具有相同的名称,该怎么办?如何使用:
<?
$name = mysql_fetch...
echo $name['a.title'] . ' ' . $name['b.title'];
?>
所以我可以从表 A 获取标题,从表 B 获取标题。因为现在,如果只使用$name['title']
它会返回 tableA 的标题。不幸的是,上面的代码只给出了一个空字符串。
除了做select *
,你也可以在列上放一个别名。
SELECT a.title AS 'a_title', b.title AS 'b_title'
-- ...
那么你的PHP将是这样的:
$name['a_title']
使用别名
SELECT a.title AS TitleA,
b.title AS TitleB,
...
从。。。
然后引用别名:
$name['TitleA']
停止使用 SELECT *
!
显式列出列,然后允许您根据需要为列添加别名。
SELECT a.title AS TableATitle, b.title AS TableBTitle, ...
而不是使用 SELECT *,您必须按名称调用字段。 执行此操作时,可以为每个别名分配一个别名。
SELECT a.title AS aTitle, b.title AS bTitle, etc...
SELECT *, a.title as atitle, b.title as btitle
FROM tableA a
INNER JOIN tableB b
ON a.someColumn = b.otherColumn
INNER JOIN tableC c
ON b.anotherColumn = c.nextColumn