我無法理解如何寫一個特定的MySQL查詢來執行關係部門/相交。我已經看過下面的鏈接/ SO問題,但我仍然困惑:如何寫一個特定的MySQL查詢來執行關係部門/相交? Id est,我要寫什麼查詢?
MySQL equivalent of IN() clause doing Logical AND; Relational Algebra : Division; Divided we Stand; Advanced SQL : Intersect; Doing INTERSECT and MINUS in MySQL和Alternative to INTERSECT in MySQL
我試圖修改「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)
IN是OR條件(是的一個)。我所追求的是AND條件(全是)。 – 2013-05-03 17:56:59