2016-08-21 32 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