我需要创建一个 SQL 查询,该查询根据该列和其他列中的值从 1 列返回多个值。 我有2张 table , table 1 Table 2
我当前的查询是
SELECT title, id, value, item_id, catid, created, field_id, alias
FROM gewtk_content p
INNER JOIN gewtk_fields_values ON p.id = item_id
WHERE `value` = 'Jessica' AND `title` REGEXP '/ESD'
AND `state` = '1' AND (`field_id` = '265'
OR `field_id` = '297' OR `field_id` = '301'
OR `field_id` = '301' OR `field_id` = '302'
OR `field_id` = '303' OR `field_id` = '304')
按预期工作 但我还需要返回“值”列中的条目,其中 field_id = 186 以及与上述查询结果中的 item_id 匹配的 item_id 条目。在这种情况下,item_id = 532 所以使用表中的数据和上面的查询结果将是
<table style="height: 108px;" width="740">
<tbody>
<tr style="height: 31px;">
<td style="width: 75.7833px; height: 31px;">title</td>
<td style="width: 75.7833px; height: 31px;">id</td>
<td style="width: 75.7833px; height: 31px;">value</td>
<td style="width: 75.7833px; height: 31px;">item_id</td>
<td style="width: 75.7667px; height: 31px;">cat_id</td>
<td style="width: 75.7833px; height: 31px;">created</td>
<td style="width: 75.7667px; height: 31px;">field_id</td>
<td style="width: 75.7833px; height: 31px;">alias</td>
</tr>
<tr style="height: 39.7333px;">
<td style="width: 75.7833px; height: 39.7333px;">positive/ESD</td>
<td style="width: 75.7833px; height: 39.7333px;">532</td>
<td style="width: 75.7833px; height: 39.7333px;">jessica</td>
<td style="width: 75.7833px; height: 39.7333px;">532</td>
<td style="width: 75.7667px; height: 39.7333px;">24</td>
<td style="width: 75.7833px; height: 39.7333px;">2019-04-03 05:41:3</td>
<td style="width: 75.7667px; height: 39.7333px;">265</td>
<td style="width: 75.7833px; height: 39.7333px;">positive-esd-18</td>
</tr>
</tbody>
</table>
最佳答案
您可以第二次连接表 1 并将第二个所需值与 or 连接添加到 where 子句。现在您将收到每个查询两行。为避免这种情况,您可以使用 group by条款最后。对于 (result) 列,您将使用连接。这肯定只是一种选择,我不确定这是否是最好的。
你可以打开一个 sqlfiddle使用一些播放数据可以更轻松地为您提供帮助。
关于mysql - 根据其他列从 1 列返回 2 个值的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57667967/