我想基于它的值在表上执行内部联接,如下所示:
@foreach ($projects as $key => $project)
<tr>
<td>{{ ++$i }}</td>
<td>{{ $project->title }}</td>
<td>{{ $project->code }}</td>
<td>{{ $project->domain->name }}</td>
<td>{{ $project->owner->name }}</td>
</tr>
@endforeach
使用in()的东西不起作用,&#34; 在(table1.value) &#34;未被解释为&#34; in(&#39; 1&#39;,&#39; 2&#39;) &#34;,它确实没有显示任何结果。
表1:
SELECT table2.value FROM table1
INNER JOIN table2 ON table2.key IN (table1.value)
WHERE table1.key = 'test'
表2:
KEY VALUE
test '1','2'
我知道有这样的解决方法,但我想在没有额外选择的情况下解决这个问题。
KEY VALUE
1 result1
2 result2
3 result3
有什么想法吗? 谢谢, 伦纳特
答案 0 :(得分:4)
首先,您的数据结构完全错误。您不应该在字符串中存储ID列表。有很多好的理由:
正确的解决方案是每个键和每个值一行。
但是,有时候,我们会遇到其他人非常糟糕的设计决策。在这种情况下,您可以使用like
:
SELECT table2.value
FROM table1 t1 INNER JOIN
table2 t2
ON t1.value LIKE '%''' + t2.key + '''%'
WHERE t1.key = 'test';