你会

如何参考表1的列,以两列在表2中

我创建的表 '的国家' 50级确切的行

试图涉及(weddingState,contactState)在 '的婚礼' 表

这是我创建的语句,但它只是将顶端的 WeddingState 正确的 - 似乎不关心INNER JOIN它下面...

SELECT *

从婚礼

INNER JOIN状态为S1 ON婚礼。的 WeddingState 婚姻= s1.StateId //状态

INNER JOIN状态如新娘的S2接通weddings.ContactState = s2.StateId //接触状态

WHERE weddings.weddingid = “094829292”

有帮助吗?

解决方案

我猜你在PHP或什么检索这些,而你取的散列阵列的行,由字段名称作为关键字。当然,可能也只能在一个给定键的哈希的一个元素。所以,你需要使用列别名,以确保列具有相同的名称都给予了不同的别名。

SELECT w.*, s1.StateID AS wstate, s2.StateId AS cstate
FROM weddings AS w
INNER JOIN states AS s1 ON w.WeddingState = s1.StateId //state of marriage
INNER JOIN states AS s2 ON w.ContactState = s2.StateId //contact state of bride
WHERE w.weddingid="094829292";

现在您的散列的阵列将具有键“wstate”和“cstate”。无混叠这些列,一个将总是覆盖其他

其他提示

和你有什么让你的结果,导致你对你的结论是什么?

这将是混乱对于初学者,因为在这两个字段名称加入,再加上一些在主表中的字段名的,是相同的。这真是一个好主意,明确地选择你的输出列,并给他们有意义的别名。

如何:

选择s1.StateName,s2.StateName

从婚礼

INNER JOIN状态为S1 ON weddings.WeddingState = s1.StateId //婚姻状态

INNER JOIN状态如新娘的S2接通weddings.ContactState = s2.StateId //接触状态

WHERE weddings.weddingid = “094829292”

感谢比尔,我添加了Statename的以及

选择瓦特*,

s1.StateId AS WeddingStateId,

s1.StateName AS WeddingStateName,

s2.StateId AS ContactStateId,

s2.StateName AS ContactStateName

从婚礼为W

INNER JOIN状态为S1 ON w.WeddingState = s1.StateId

INNER JOIN状态为S2 ON w.ContactState = s2.StateId

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top