Mysql 2 select 所有语句都无法正常工作
Mysql 2 select all statements not working correctly
我正在尝试 select 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 有一些相同的名称,所以当我试图从 stock 中回显一列时,它从 standitems 中获取它
查询结果包含列名。这些名称 不 包含 table 别名。因此,在查询上下文中,您可以——而且应该——使用限定名称。但是,结果集中只使用了列名本身。
您可以使用 as
控制别名,因此您可以:
select StandItems.Barcode as StandItems_BarCode
例如,然后在引用结果集中的列时使用 StandItems_Barcode
。
顺便说一句,您的查询似乎缺少 join
。如果您真的想要 table 之间的笛卡尔积,请明确并使用 cross join
而不是逗号。
我正在尝试 select 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 有一些相同的名称,所以当我试图从 stock 中回显一列时,它从 standitems 中获取它
查询结果包含列名。这些名称 不 包含 table 别名。因此,在查询上下文中,您可以——而且应该——使用限定名称。但是,结果集中只使用了列名本身。
您可以使用 as
控制别名,因此您可以:
select StandItems.Barcode as StandItems_BarCode
例如,然后在引用结果集中的列时使用 StandItems_Barcode
。
顺便说一句,您的查询似乎缺少 join
。如果您真的想要 table 之间的笛卡尔积,请明确并使用 cross join
而不是逗号。