我想选择2个这样的表
$query = $this->pdo->prepare('SELECT StandItems.*, Stock.* FROM StandItems, Stock
WHERE StandItems.StandId = ? AND StandItems.Barcode = Stock.Barcode');
这样可行但是当我尝试这样的事情时,它不起作用
echo StandItems.Barcode
但如果我做这样的事情,那就行了。
echo Barcode
有没有办法通过添加" StandItems"来实现它?在列名之前,因为StandItems和Stock有一些相同的名称所以当我试图从库存中回显一个列时它从standitems中取出它
答案 0 :(得分:2)
查询的结果具有列名。这些名称不包含表别名。因此,在查询的上下文中,您可以 - 并且应该 - 使用限定名称。但是,在结果集中只使用列名本身。
您可以使用as
来控制别名,因此您可以执行以下操作:
select StandItems.Barcode as StandItems_BarCode
例如,然后在引用结果集中的列时使用StandItems_Barcode
。
顺便说一下,您的查询似乎缺少join
。如果您真的想在表格之间使用笛卡尔积,那么请明确使用cross join
而不是逗号。