我想选择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中获取

最佳答案

查询的结果具有列名。这些名称不包括表别名。因此,在查询的上下文中,您可以并且应该使用限定名称。但是,结果集中仅使用列名本身。

您可以使用as控制别名,因此您可以执行以下操作:

select StandItems.Barcode as StandItems_BarCode


例如,然后在引用结果集中的列时使用StandItems_Barcode

顺便说一句,您的查询似乎缺少join。如果您确实希望在表之间使用笛卡尔积,则应明确并使用cross join而不是逗号。

关于php - MySQL 2选择所有语句无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27944654/

10-11 03:30