【问题标题】:select from table with result of another sql从具有另一个 sql 的结果的表中选择
【发布时间】:2011-01-22 20:07:31
【问题描述】:

有可能吗?

标签表:

标签        postid aa          22 bb          26 抄送          28

post_table:

id          内容 26            abc 28            cdf 22            fds

我想从 post_table 中选择 tag_table 中的搜索结果

我的脚本: 第一个

SELECT postid FROM `tag_table` WHERE `tag` LIKE '%aa%'

并将结果放入数组中,然后再次运行 sql

foreach ($postids as $key => $post_id) {
$sql .= "`id` = $post_id or";
}

而 $sql 是

SELECT * FROM `post_table` WHERE `id` = 22     or etc 

我想用一个 sql 代码做到这一点 有可能吗?

【问题讨论】:

    标签: php sql select


    【解决方案1】:

    您可以像这样使用子查询和IN 语句:

    SELECT * 
    FROM `post_table` 
    WHERE `id` IN (SELECT `postid`
                   FROM `tag_table`
                   WHERE `tag` LIKE '%aa%')
    

    【讨论】:

    • +1 是现代硬件的正确答案。但是,如果您使用的是非常旧/慢的东西,有时最好以编程方式进行:执行 SELECT,然后从迭代器中运行单独的、键控的查询。听起来很奇怪,但它会让您在传统硬件上显着提升性能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 2018-11-04
    • 1970-01-01
    • 2020-11-22
    • 2021-04-27
    • 1970-01-01
    相关资源
    最近更新 更多