0

他の 2 つのテーブルから 2 つの条件をこのクエリに追加する必要がありますが、その方法がわかりません。

SELECT SQL_CALC_FOUND_ROWS * FROM wp_posts  WHERE 1=1  AND ( (
                SELECT COUNT(1)
                FROM wp_term_relationships
                WHERE term_taxonomy_id IN (2,3)
                AND object_id = wp_posts.ID
                ) = 2 ) AND wp_posts.post_type = 'packages' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10

他のテーブル:

テーブル 1 (name:packages_dates) には 3 つのフィールドがあります: post_id、date_from(date)、date_to(date)

テーブル 2 (name:packages_price) には 2 つのフィールドがあります: post_id,price(numeric)

条件は次のとおりです。

日付入力があり、date_from と date_to の間にある必要があります

表1

;

2 番目の入力は、価格を含む価格の範囲です。

表 2

;

ありがとう

4

1 に答える 1

0

データベースで内部結合が許可されている場合、これが機能するように思えます。

SELECT SQL_CALC_FOUND_ROWS * FROM wp_posts inner join packages_dates on wp_posts.ID=packages_dates.post_id inner join packages_price on wp_posts.ID=packages_price.post_id WHERE 1=1  AND ( (
            SELECT COUNT(1)
            FROM wp_term_relationships
            WHERE term_taxonomy_id IN (2,3)
            AND object_id = wp_posts.ID
            ) = 2 ) AND wp_posts.post_type = 'packages' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') AND packages_dates.date_from >=DateInput and packages_dates.date_to<=DateInput and packages_price between InputLowRange and InputHighRange GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10
于 2013-04-08T20:55:00.687 に答える