查询表中的记录,其中attribute =来自先前查询的数组中的项

时间:2016-06-03 10:50:25

标签: php mysql sql arrays

表1: id(自动增量) 用户名 类

表2: id(自动增量) 项目名称 类

我有2个查询。

1个查询显示用户(已登录)所属的类别:

 $sql = "SELECT * FROM table1 WHERE '$login_session' = username";

我可以列出每条记录:

 if ($result->num_rows > 0) {
      while($row = $result->fetch_assoc()) {
      echo "category: " . $row["category"]. "<br>";
 }

工作正常。

我的第二个查询取决于第一个查询。我需要在上一个查询中列出table2中所有类别属于数组类别的记录。

 $sql2 = "SELECT * FROM table2 WHERE category = I DO NOT KNOW WHAT TO PUT HERE";

如何编写$ sql2?

2 个答案:

答案 0 :(得分:4)

一种方法使用in

SELECT *
FROM table2
WHERE category IN (SELECT category FROM table1 WHERE '$login_session' = username");

答案 1 :(得分:1)

您可以使用IN()

$sql =  'SELECT * FROM table2 WHERE category IN ('"' . implode('","', $arrayOfCategories).'"')'