EXC:
私は、次のクエリを使用しました
select a.*,b.* from firsttable a left join secondtable b on a.id=b.item_id ORDER BY a.id DESC LIMIT 0,10
最初のテーブルのIDが第二のITEM_IDである2つのテーブルから項目を表示します。私は私が私が試すことができa.id表示したい場合は、PHPでこれを表示しようとすると、私の質問は、次のとおりです。
while($row=$go->fetch_assoc()){
echo $row['id'];
}
若しくは
while($row=$go->fetch_assoc()){
echo $row['a.id'];
}
両方のテーブルは、IDを持っているので、第一及び第二のテーブルと表示する第2のテーブルのIDと一致する行がある場合にのみ、第1の実施のディスプレイ上に、Iは最初のIDが欲しいです
第二に、それは未定義のインデックスは述べています。これは、してください、なぜあなたは説明できますか?
編集:例えば、テーブルを追加します
id
info
username
id
item.id
username
GMB:
使用する場合、両方のテーブルが同じ名前を持つ列を有しているので、select *
それは、どの列に曖昧であるid
にも関します。
あいまいさを削除する唯一の方法は、明示的にあなたがしたいすべての列を一覧表示することであるselect
同音異義語の別名を使用して、:
select
a.id,
b.id b_id, -- alias for b.id
b.item_id
-- more columns here as needed
from firsttable a
left join secondtable b on a.id=b.item_id
order by a.id desc
limit 0,10
これは多くの理由の一つでありselect *
、一般的にSQLでの悪い習慣と考えられています。
読んオススメ:使用しない理由は何ですかselect *
?