我可以在SQL查询中从ID =另一个查询的表中选择全部吗?

时间:2018-04-23 03:22:30

标签: php mysql sql

我希望能够根据设计师的工作来过滤帖子,我将每个帖子都放在设计器表的布尔值中 即徽标:1,网站:0 ID是两个表中相同的外键,所以我想根据设计器表中的数据显示帖子。

  

$ sqldesigner = SELECT designerID FROM designers WHERE logo = 1;

     

$ sqlall = SELECT * FROM post WHERE designerID = $ sqldesigner;

我想根据发布帖子的设计师来展示这些帖子,在这个例子中,设计师在设计师表格中制作徽标时,他在注册时勾选了一个标识框,将logo设置为布尔值为1,目前我显示页面上的所有帖子但我希望有一个按钮来过滤这些帖子,只显示由制作徽标的设计师制作的帖子,我的第一个查询是获取制作徽标的设计师的所有ID,然后我的第二个是获取这些设计师的所有帖子

希望我在这里提供了足够的信息,并提前感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以使用以下SQL语句来满足您的要求:

SELECT * FROM post WHERE id IN (SELECT ID FROM designers WHERE logo = 1);

SQL IN运算符允许您在WHERE子句中指定多个值。 IN运算符是多个OR条件的简写。 可以找到有关SQL IN Operator的更多信息here

OR

SELECT p.*, d.id FROM post p,designers d WHERE p.id = d.id AND d.logo = 1;

它的作用是,它可以帮助您将帖子重命名为p,将设计器重命名为d,然后根据两个不同的表格应用where where条件。

以上查询可用于解决您的问题。