我需要运行如下的查询
SELECT `loginname`, `id`, `locality`, `wherefrom`
FROM `Volley` JOIN `register` ON loginname=username
WHERE CONCAT_WS('', wherefrom,locality) LIKE '%$search%'
从这个结果我需要获取id并将其传递给另一个查询以检查该ID是否存在于另一个表中,如下所示。
SELECT IF(EXISTS(SELECT *
FROM `likes`
WHERE Volleyid = '20'),1,0)
我可以将它合并为一个查询吗?对于第一个,我可能会获得更多的1行。我尝试将第一个查询的结果导入数组,但我无法从数组中获取该特定值。
$data = array();
for ($x = 0; $x < mysqli_num_rows($query1); $x++)
{
$data[] = mysqli_fetch_assoc($query1);
}
答案 0 :(得分:0)
SELECT IF(EXISTS(SELECT * From
(
SELECT `loginname`,
`id`,
`locality`,
`wherefrom`,
Volleyid
FROM `Volley`
JOIN `register`
ON loginname=username
WHERE CONCAT_WS('', wherefrom,locality) LIKE '%$search%'
) AS T1
WHERE Volleyid = '20'),1,0)
答案 1 :(得分:0)
你可以使用带有IN子句的子查询(我认为你的内容是Volleyid它等于id):
SELECT IF(EXISTS(SELECT *
FROM `likes`
WHERE Volleyid IN
(SELECT `id`
FROM `Volley` JOIN `register` ON loginname=username
WHERE CONCAT_WS('', wherefrom,locality) LIKE '%$search%')),1,0)
答案 2 :(得分:0)
如果您想在第一个查询中获取loginname
,id
,locality
,wherefrom
列以及针对表{{1}检查的1或0标记在单个结果集中。您可以编写如下所示的查询:
likes