如何在联接的表上使用mysql_fetch_array,但是列具有相同的名称
技术问答
280 人阅读
|
0 人回复
|
2023-09-14
|
我有两个表,它们共享相似的列名。3 ^; n% `7 ~# H1 Q
查询是:
; H2 t5 a" l w8 VSELECT a.name,b.name
1 B/ j6 l) e# X* xFROM tablea a
- G. {$ j+ r0 Z2 ~6 |" U8 DJOIN tableb b ON a.id = b.id
, R' I) f& V% h结果放入一个数组中:
L: c3 L5 F! g. }4 e; b/ G( V' \while ($row = mysql_fetch_array($results)){
h) ]+ P2 X5 f5 {, V $aname = $row['name'];4 Z4 }; E# ~" {! n5 D
}
8 U `! {8 ~% f% O+ ~. |8 S& X: e一旦我添加了第二张表,我注意到该表$aname正在使用tableb的数据。
( D7 X( ?6 u R9 \( M" \5 B/ {8 \ k4 a问题3 Q/ V, d. b* r' s
(S):如何存储两个name列,$row['a.name']所以不起作用。我的猜测可能是我需要对查询中的每个结果进行别名化。有什么建议?
) h- R* N1 R: O) {1 Q" m* o5 p我是否应该避免将来再提供列名 ?
* P9 S( x0 B- F9 D
7 Z8 q$ F" h3 [/ X! @5 BI know mysql_* is deprecated. Save your energy., J) i; c& D" o, j) S" T
7 h9 S* `) Q$ i/ i( I2 K: f9 @
解决方案:
# D8 M" @+ o9 \; i' T7 m; ? 6 g% J$ D9 p8 X# Y
: `3 D2 T0 F' ?+ ^1 l( p* D7 e7 l7 x
你的猜测是对的。您需要ALIAS为各列创建一个,以便可以唯一地获取它,
/ O% {% i m( u( ^6 c y/ Q) `SELECT a.name Name1, b.name Name2
$ Q, C, M/ r# ?: [; Y4 \FROM tablea a
' ~6 N2 U' m1 R6 R j* j4 G- x8 g" UJOIN tableb b ON a.id = b.id
" L& r) g( y4 I: _% j那你现在可以打电话7 {5 |' W5 J. I( |( L$ O; O
$row['Name1'] |
|
|
|
|
|