繁体   English   中英

选择列等于另一个查询的任何值的位置

[英]Select where a column equals any value from another query

我有一个查询来查找名为entryEntryPairs的表中的关系:

if (!$result = $mysqli->query(
    "SELECT entryIdA AS relatedId FROM entryEntryPairs WHERE entryIdB = ".$inRow["id"].
    " UNION ".
    "SELECT entryIdB AS relatedId FROM entryEntryPairs WHERE entryIdA = ".$inRow["id"]
)) return "Something went wrong";

但是,我真正想要的是使用所有relatedId作为对名为entry的表的更大查询的一部分。 形式的东西:

SELECT title FROM entry WHERE id =

id =右侧的缺失部分将是所有relatedIds 这可以在一个更大的查询中完成,还是我必须迭代插入id = ?右边的每个relatedId的第一个查询的结果?

您可以尝试使用IN

"SELECT title FROM entry WHERE id IN (SELECT entryIdA AS relatedId FROM entryEntryPairs WHERE entryIdB = ".$inRow["id"].
" UNION ".
"SELECT entryIdB AS relatedId FROM entryEntryPairs WHERE entryIdA = ".$inRow["id"].")"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM