我有
$mySQL = $db -> prepare("SELECT table1.users,table1.name,table2.img,table2.name,table2.users FROM table1,table2 WHERE table1.users = table2.users");
$row = $mySQL->fetch(PDO::FETCH_ASSOC);
我可以回应:
echo $row['name'];
但是如何知道从table1或table2获取名称?我可以做点什么吗
echo $row['table1.name'];
由于
另外,这是从多个表中获取数据的最佳方法吗?感谢
答案 0 :(得分:2)
使用SQL Alias。
例如:SELECT column_name AS alias_name
FROM table_name
答案 1 :(得分:1)
尝试命名字段:
SELECT table1.name AS table1name
然后它会在结果集中显示为table1name
,因此不存在冲突的可能性。
连接可以是从多个表中获取数据的一种非常有效的方式 - 它在很大程度上取决于数据库的结构,要检索的数据等等。
答案 2 :(得分:1)
您需要为列提供不同的aliass:
SELECT table1.users AS users_1, table2.users AS users_2,
table1.name AS name_1, table2.name AS name_2, table2.img
FROM table1,table2
WHERE table1.users = table2.users
答案 3 :(得分:1)
添加别名
$mySQL = $db -> prepare("SELECT table1.users AS tbl1users , table1.name AS tbl1name , table2.img AS tbl2img, table2.name as tbl2name, table2.users as tbl2users FROM table1,table2 WHERE table1.users = table2.users");
答案 4 :(得分:1)
添加别名以识别您的表格。
SELECT table1.users as tab1user,table1.name,table2.img,table2.name,table2.users as tab2user
FROM table1 JOIN table2 in table1.users = table2.users
JOIN表的最佳方式。它会提高表现。 您必须根据您的要求选择合适的连接方法。点击此链接进入JOIN
http://www.w3schools.com/sql/sql_join.asp
修改: * 加入3个表 *
select ......
FROM table1 JOIN table2 in table1.users = table2.users
JOIN Table3 in table2.id=table3.id