Zend framework 完全外接原则
我想在ORM(PHP)中做一个完整的外部连接 我目前的查询是:Zend framework 完全外接原则,zend-framework,doctrine,doctrine-query,Zend Framework,Doctrine,Doctrine Query,我想在ORM(PHP)中做一个完整的外部连接 我目前的查询是: $query = Doctrine_Query::create() ->from('Model_Contract_Payment p') ->innerJoin('p.Contract c') ->where(" c.modified_date IS NOT NULL AND (c.modified_date < '" . date(DA
$query = Doctrine_Query::create()
->from('Model_Contract_Payment p')
->innerJoin('p.Contract c')
->where(" c.modified_date IS NOT NULL AND (c.modified_date < '" . date(DATABASE_DATE_FORMAT, $lastShowableDate) . "' OR c.archive_status = 1 OR p.archive_status = 1)".$queryStr )
->orderBy($sortColumn . ' ' . $sortDirection);
我正在使用SQL SERVER。
任何想法都将不胜感激!谢谢您的SQL缺少一些关键信息,如果您发布了所需的SQL,会更容易。但是听上去你想使用
leftJoin
而不是innerJoin
(leftJoin与leftouterjoin相同)
有关详细信息,请参见。您的SQL缺少一些关键信息,如果您发布了所需的SQL,则会更容易。但是听上去你想使用
leftJoin
而不是innerJoin
(leftJoin与leftouterjoin相同)
有关更多信息,请参见我了解在ORM中完全外部连接是不可能的。
因此,我更改了我的应用程序代码以使用左连接。我知道在ORM中完全外部连接是不可能的。
因此,我更改了我的应用程序代码以使用左连接。我想实现这样一个查询:
从(c.Contract\u id=p.Contract\u id)上的契约c完全外部连接中选择p.*,c.*,其中c.modified\u date不为空
您在使用mysql吗?不能有完全的外部联接。我使用的是SQL SERVER,完全外部连接在这里是可能的。我想实现这样一个查询:select p.*c.*from Contract c full outer join ON(c.Contract\u id=p.Contract\u id),其中c.modified\u date不为NULL
您使用mysql吗?不能有完全的外部联接。我使用的是SQL SERVER,完全外部连接在这里是可能的。
Contract:
connection: doctrine
tableName: Contract
columns:
contract_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
hash:
type: string(32)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
payment_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
sales_force_opportunity_id:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
sales_force_opp_owner:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
sales_force_opp_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
sales_force_account_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contact_first_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contact_last_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contract_companyname:
type: string(80)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contact_email_address:
type: string(256)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contact_alternate_email_address:
type: string(256)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contact_phone_number:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contract_status_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contract_agreed_ip_address:
type: string(72)
fixed: true
unsigned: false
notnull: false
primary: false
autoincrement: false
agreed_date:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
agreement_start_date:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
agreement_end_date:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
seat_details:
type: string(2147483647)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
special_instructions:
type: string(2147483647)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
agreement_type_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
agreement_terms:
type: string(2147483647)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
additional_terms:
type: string(2147483647)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
additional_notes:
type: string(2147483647)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
payment_terms:
type: string(2147483647)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
total_value:
type: decimal(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
payment_method_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
bank_name:
type: string(100)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
bank_account:
type: string(30)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
bank_routing:
type: string(30)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_num_short:
type: string(5)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_num_encrypt:
type: string(255)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_exp:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_type:
type: string(30)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_first_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_last_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_address1:
type: string(100)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_address2:
type: string(100)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_city:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_state:
type: string(5)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_country:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_postal_code:
type: string(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_phone:
type: string(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_first_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_last_name:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_address1:
type: string(100)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_address2:
type: string(100)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_city:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_state:
type: string(5)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_country:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_postal_code:
type: string(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
shipping_phone:
type: string(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
rejection_notes:
type: string(2147483647)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
rvp_status_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
rvp_comment:
type: string(2147483647)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
rvp_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
created_date:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
created_admin_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
modified_date:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
isenabled:
type: boolean(1)
fixed: false
unsigned: false
notnull: true
default: 1
primary: false
autoincrement: false
archive_status:
type: integer(1)
fixed: false
unsigned: false
notnull: true
default: 0
primary: false
autoincrement: false
relations:
Contract_Status:
local: contract_status_id
foreign: contract_status_id
type: one
Agreement_Type:
local: agreement_type_id
foreign: agreement_type_id
type: one
Payment_Method:
local: payment_method_id
foreign: payment_method_id
type: one
AdminUser:
local: created_admin_id
foreign: admin_id
type: one
Contract_Payment:
local: contract_id
foreign: contract_id
type: many
cascade: [delete]
Contract_Product:
local: contract_id
foreign: contract_id
type: many
cascade: [delete]
Contract_Venue:
local: contract_id
foreign: contract_id
type: many
cascade: [delete]
Contract_Payment:
connection: doctrine
tableName: Contract_Payment
columns:
payment_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
created_date:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
contract_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
payment_status_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
amount:
type: decimal(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_amount:
type: decimal(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_amount1:
type: decimal(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
check_amount:
type: decimal(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
due_date:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
modified_date:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
modified_admin_id:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
notes:
type: string(200)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
payment_method_id:
type: integer(1)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
payment_status_id_credit_card1:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
payment_status_id_credit_card2:
type: integer(4)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_holdername:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_num_short:
type: string(5)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_num_encrypt:
type: string(255)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_expiration:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_type:
type: string(30)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
second_credit_card_enable:
type: integer(1)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_holdername1:
type: string(50)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_num_short1:
type: string(5)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_num_encrypt1:
type: string(255)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_expiration1:
type: timestamp(16)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
credit_card_type1:
type: string(30)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
auth_reference:
type: string(100)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
auth_reference1:
type: string(100)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
billing_postal_code:
type: string(20)
fixed: false
unsigned: false
notnull: false
primary: false
autoincrement: false
archive_status:
type: integer(1)
fixed: false
unsigned: false
notnull: true
default: 0
primary: false
autoincrement: false
relations:
Contract:
local: contract_id
foreign: contract_id
type: one
Payment_Status:
local: payment_status_id
foreign: payment_status_id
type: one
AdminUser:
local: modified_admin_id
foreign: admin_id
type: one
Contract_Payment_History:
local: payment_id
foreign: payment_id
type: many
cascade: [delete]