1

私は持っている

$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'];

ありがとう

また、これは複数のテーブルからデータを取得する最良の方法ですか? ありがとう

4

5 に答える 5

2

SQLエイリアスを使用します。

例えば:SELECT column_name AS alias_name FROM table_name

于 2012-08-17T04:56:40.767 に答える
1

フィールドに名前を付けてみてください。

SELECT table1.name AS table1name

これは結果セットにとして表示されるtable1nameため、競合の可能性はありません。

結合は、複数のテーブルからデータを取得するための非常に効率的な方法です。データベースの構造、取得するデータなどに大きく依存します。

于 2012-08-17T04:56:59.613 に答える
1

次のように、列に異なるエイリアスを指定する必要があります。

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
于 2012-08-17T04:57:13.963 に答える
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");
于 2012-08-17T04:57:35.223 に答える
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

テーブルに参加するための最良の方法。パフォーマンスが向上します。要件に応じて適切な結合方法を選択する必要があります。参加するには、このリンクをたどってください

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
于 2012-08-17T04:58:44.567 に答える