【发布时间】:2014-03-19 09:39:27
【问题描述】:
所以,我不擅长文字,我会用图片来描述它。
这是我数据库中的 MATSH 表。我的目标是用其他表中的名称替换 Mang_id、Voistkond_1_id 和 Voistkond_2_id。
MATSH.Mang_id = MANG.Mang_id
MATSH.Voistkond_1_id 和 Voistkond_2_id 与 VOISTKONNAD.Voistkond_id 中的相同
所有 3 个表都有所有主键和伪造键。
MATSH
VOISTKONNAD
芒果
但是现在我尝试从表信息中选择,因为数字被替换,但是出现了问题。我的 Teine_voistkond 是从 Voistkond_1_id 而不是 Voistkond_2_id 获取信息...
select MATSH.Matsh_id, MANG.Mang_nimi, MATSH.Voistkond_1_id, VOISTKONNAD.Voistkond_nimi as Esimene_voistkond, MATSH. Voistkond_2_id, VOISTKONNAD.Voistkond_nimi as Teine_voistkond, MATSH.Matsh_kuupaev, MATSH.Tulemus, MATSH.Muu_info
from MATSH
join MANG on MATSH.Mang_id = MANG.Mang_id
join VOISTKONNAD on MATSH.Voistkond_1_id = VOISTKONNAD.Voistkond_id;
但如果我使用,我会
...
join VOISTKONNAD on MATSH.Voistkond_1_id = VOISTKONNAD.Voistkond_id
join VOISTKONNAD on MATSH.Voistkond_2_id = VOISTKONNAD.Voistkond_id;
这给了我
错误 1066 (42000):不是唯一的表/别名:'VOISTKONNAD'
我尝试使用别名。它给了我。
空集(0.00 秒)
并带有左右连接。它又给了我
空集(0.00 秒)
您现在可能可以理解,我的问题在于 Teine_voistkond 没有显示它应该显示的名称。
我又发现了错误。
【问题讨论】:
-
尝试使用
JOIN VOISTKONNAD AS v1 ON on MATSH.Voistkond_1_id = v1.Voistkond_id和JOIN VOISTKONNAD AS v2 ON on MATSH.Voistkond_2_id = v2.Voistkond_id并相应地更新您的SELECT,即类似SELECT v1.Voistkond_nimi, v2.Voistkond_nimi, ... -
为什么是这张照片?
-
@mahok 将它们更改为
v1v2并更新SELECT不起作用,它与第二张图片中的相同。
标签: php mysql sql join inner-join