gpt4 book ai didi

php - 对 ZenCart 的地址簿条目执行加入

转载 作者:行者123 更新时间:2023-11-29 08:43:45 25 4
gpt4 key购买 nike

我有以下代码:

$referrers_query = 
select c.customers_id, c.customers_firstname, c.customers_lastname,
c.customers_email_address, c.customers_telephone, a.entry_street_address,
a.entry_city, a.entry_state, a.entry_country_id, n.countries_name,
a.entry_zone_id, a.entry_postcode, r.referrer_customers_id,
r.referrer_key, r.referrer_homepage, r.referrer_approved,
r.referrer_banned, r.referrer_commission from customers as c,
address_book as a, referrers as r, countries as n
where a.entry_country_id = n.countries_id and c.customers_id = r.referrer_customers_id
and a.address_book_id = c.customers_default_address_id order by c.customers_lastname;

我想要做的是,我不想进行 WHERE 子句连接,而是希望嵌套连接。

上面提到了五个数据库表。客户、地址簿、推荐人、国家/地区。

但我不知道从哪里开始。主要问题是使用上面的语句,我似乎从选择中丢失了一些记录。这是因为某些记录使用 'zone_id' = 0。解决此问题的方法是简单地为 0 创建一个空白记录,但除此之外,我可以使用联接来解决此问题吗?

最佳答案

使用显式 JOIN 编写的查询s:

SELECT c.customers_id, c.customers_firstname, c.customers_lastname, 
c.customers_email_address, c.customers_telephone, a.entry_street_address,
a.entry_city, a.entry_state, a.entry_country_id, n.countries_name,
a.entry_zone_id, a.entry_postcode, r.referrer_customers_id,
r.referrer_key, r.referrer_homepage, r.referrer_approved,
r.referrer_banned, r.referrer_commission
FROM customers AS c
JOIN referrers AS r ON (c.customers_id = r.referrer_customers_id)
JOIN address_book AS a ON (a.address_book_id = c.customers_default_address_id)
JOIN countries AS n ON (a.entry_country_id = n.countries_id)
ORDER BY c.customers_lastname

如果您还想从区域表中获取匹配项的信息,则需要添加 LEFT JOIN像这样:

SELECT c.customers_id, c.customers_firstname, c.customers_lastname, 
c.customers_email_address, c.customers_telephone, a.entry_street_address,
a.entry_city, a.entry_state, a.entry_country_id, n.countries_name,
a.entry_zone_id, a.entry_postcode, r.referrer_customers_id,
r.referrer_key, r.referrer_homepage, r.referrer_approved,
r.referrer_banned, r.referrer_commission
FROM customers AS c
JOIN referrers AS r ON (c.customers_id = r.referrer_customers_id)
JOIN address_book AS a ON (a.address_book_id = c.customers_default_address_id)
JOIN countries AS n ON (a.entry_country_id = n.countries_id)
LEFT JOIN {zones table name} AS z ON (z.{zones id column name} = a.entry_zone_id)
ORDER BY c.customers_lastname

并将要选择的列添加到查询的顶部。一个LEFT JOIN始终从左表(列出的第一个表)返回结果,如果右表中没有匹配项,则返回 NULL s 代表右表的列。

关于php - 对 ZenCart 的地址簿条目执行加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13054030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com