2013-08-27 43 views
0

我正在做一个来自两个不同表的联合查询,然后是fetch_array循环查询我想知道从哪两个表中我实际上抓住了,反正没有添加标志放入表格的结构中。 ?如何知道fetch_array里面的表名

回答

1

的标志并不需要在表中,但可以轻松地查询:

SELECT 'table1' as t, ... FROM table1 
UNION 
SELECT 'table2' as t, ... FROM table2 

... 

echo $row['t']; 

您没有选择从表中的字段,你可以简单地“选择一个字符串文字“也是如此。

+0

然后找出它我会去'while($ m = mysql_fetch_array($ r)){if(isset($ m ['table1']){} else {}}'? – lbennet

+0

真棒,谢谢。 – lbennet

+0

只需使用'SELECT'table1' t ...',那么这个值就可以作为't'的列。 – deceze

1

如果你有两个表中相同名称的列,您可以使用作为

SELECT table1.col1 as col1, table1.col2, table1.col3 FROM table1 
UNION 
SELECT table2.col1 as col4, table1.col5 FROM table2 

然后你做$数据= FETCH_ASSOC($ Q),你将有

$data["col1"] // table1.col1 
$data["col2"] // table1.col2 
----------------------------- 
$data["col4"] //table2.col1