2016-08-21 34 views
0

我有以下表得到的列:PHP庫MySQLi從外鍵

'auktionen' 

id|uid|typ(FK)|min|max|menge|... 


'typen' 

id|typ 
1|Hack 
2|Schredder 

其中typtypen只是一個textutal表示,這是我想得。

$prep_stmt = "SELECT anzeigentyp, typ, holzart, 
qualitaet, rinde, min, max, menge FROM auktionen WHERE uid = ?"; 

$stmt = $mysqli->prepare($prep_stmt); 
$stmt->bind_param('i', $user_id); 
$stmt->execute(); 
$stmt->bind_result($anzeigentyp, $typ, $holzart, $qualitaet, $rinde, $min, $max, $menge); 
$stmt->store_result(); 

因此,當獲取我所有的結果時,我想得到「Hack」而不是引用ID(如果它是1)。我想這需要一些JOIN來實現,我試圖像這樣沒有成功:

$prep_stmt = "SELECT anzeigentyp, typen.typ, holzart, 
qualitaet, rinde, min, max, menge FROM auktionen WHERE uid = ? 
JOIN typen ON auktionen.typ = typen.typ"; 

是什麼做的正確方法?

+0

只需複製,粘貼錯誤,對不起 – 4ndro1d

回答

1

必須在where子句移動到結束,並加入相應的列typen.idauktionen.typ

select a.anzeigentyp, t.typ, a.holzart, a.qualitaet, a.rinde, a.`min`, a.`max`, a.menge 
from auktionen a 
join typen t on t.id = a.typ 
where ... 
+0

什麼我必須選擇,以獲得加入結果呢?在使用SELECT *時,我可以看到它在最後添加爲列。該列也被命名爲typ,所以當試圖選擇typ時,有兩個具有相同名稱的列導致無法接受的錯誤 – 4ndro1d