SELECT *
FROM tableA a
INNER JOIN tableB b
ON a.someColumn = b.otherColumn
INNER JOIN tableC c
ON b.anotherColumn = c.nextColumn
如果tableA和tableB在字段中具有相同的名称,该怎么办?我该如何使用:
<?
$name = mysql_fetch...
echo $name['a.title'] . ' ' . $name['b.title'];
?>
所以我可以从tableA获得标题,从tableB获得标题。因为现在,如果只使用$name['title']
它会返回tableA的标题。不幸的是,上面的代码只是一个空字符串。
答案 0 :(得分:3)
您也可以在列上添加别名,而不是select *
。
SELECT a.title AS 'a_title', b.title AS 'b_title'
-- ...
然后你的PHP会是这样的:
$name['a_title']
答案 1 :(得分:0)
使用别名
SELECT a.title AS TitleA,
b.title AS TitleB,
...
FROM ...
然后引用别名:
$name['TitleA']
答案 2 :(得分:0)
停止使用SELECT *
!
明确列出您的列,然后允许您根据需要对其进行别名。
SELECT a.title AS TableATitle, b.title AS TableBTitle, ...
答案 3 :(得分:0)
您必须按名称调出字段,而不是使用SELECT *。执行此操作时,您可以为每个别名分配一个别名。
SELECT a.title AS aTitle, b.title AS bTitle, etc...
答案 4 :(得分:0)
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