0

特定の MySQL クエリを記述して関係分割/交差を実行する方法がわかりません。次のリンク/SOの質問を見ましたが、まだ混乱しています:

論理 AND を実行する IN() 句に相当する MySQL ; 関係代数 : 除算; 分割された私たちは立っています。高度な SQL: 交差します。MySQL での INTERSECT と MINUS の実行、および MySQLでのINTERSECT の代替

「MySQL での INTERSECT の代替」に示されている SQL クエリを適合させようとしましたが、実装に迷いました。

擬似コード:

Want : package.* from package WHERE package.pkid equalto package_products.pkid AND package_products.pid is_all_of (
    WANT : option_products.pid FROM option_products 
    WHERE option_products.oid = [optionID]
), // returning packages that have all of the product IDs (pids) and not just one of them.
[OptionID] = $option

MySQL ( db_query() 内:

"SELECT package.* FROM package WHERE package.pkid = package_products.pkid && package_products.pid is_allof(".
    // What do I use in place of 'is_all_of'? How do I do an intersection/ relational division with INNER JOIN and/ or USING(pid)?
"    SELECT options_products.pid FROM options_products WHERE options_products.oid = :option
)", array(":option" => $option )
4

1 に答える 1