这是我的问题,
在数据库中,我有2个不同的表( field_data_field_company_ref 和节点)。
在第一个中,我有两个不同的字段: entity_id 和 field_company_ref_nid 。它们引用另一个表中的单个键( nid )。
我想要一个结果,显示两个第一个字段已经取 title 的值,这是第二个表中的一个字段,这要归功于 nid 键
使用此代码:
SELECT node.title as "Entity" ,node.title as 'Company '
FROM `field_data_field_company_ref`,`node`
WHERE bundle = 'project' and (`entity_id` = node.nid
OR `field_company_ref_nid` = node.nid )
结果给了我重复的价值......
另一个代码:
SELECT node.title as "Entity"
FROM `field_data_field_company_ref`,`node`
WHERE bundle = 'project' and `entity_id` = node.nid
UNION
SELECT node.title as 'Company '
FROM `field_data_field_company_ref`,`node`
WHERE bundle = 'project' and `field_company_ref_nid` = node.nid
为我提供了唯一的专栏(实体)
你能帮帮我吗?我喜欢这样的事情答案 0 :(得分:2)
您可以table2
加入table1
两次,如下所示:
select
b.title title1,
c.title title2
from table1 a
join table2 b on a.entity_id = b.nid
join table2 c on a.field_company_ref_nid = c.nid;
答案 1 :(得分:0)
我假设你想要从保存文本标签的节点查找实体和公司的值。如果是这种情况,你需要这个。
Option Explicit
Dim id As String, i As String, j As Integer, flag As Boolean
Sub GetData()
If Not IsNumeric(UserForm1.TextBox1.Value) Then
flag = False
i = 0
id = UserForm1.TextBox1.Value
Do While Cells(i + 1, 1).Value <> ""
If Cells(i + 1, 1).Value = id Then
flag = True
For j = 4 To 7
UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j).Value
Next j
End If
i = i + 1
Loop
If flag = False Then
For j = 2 To 4
' UserForm1.Controls("TextBox" & j).Value = ""
Next j
End If
Else
End If
End Sub