php sql同时查询两个表格,php – 我可以让SQL查询在每一行上做两个匹配吗?

我有一个不寻常的SQL表(不是我的),其中包含以下字段(其中包括):last_name,primary_name,secondary_name,表示已婚夫妇.假设姓氏是共享的(不是很现代,我知道),如果它不是一对,那么primary_name或secondary_name可能是NULL. (该表也有几个重复.)

我想要做的是获取数据库中所有名称(“最后一个”)的列表,以通常的方式按字母顺序排列.现在我正在使用PHP和PDO对数据库进行两次传递:

$qstr = "SELECT DISTINCT primary_name, last_name

FROM members

WHERE primary_name IS NOT null

ORDER BY last_name, primary_name";

$sth = $dbh->prepare($qstr);

$sth->execute();

// output the results

$qstr = "SELECT DISTINCT secondary_name, last_name

FROM members

WHERE secondary_name IS NOT null

ORDER BY last_name, secondary_name";

$sth = $dbh->prepare($qstr);

$sth->execute();

// output the new results

但最终结果不是按字母顺序排列的,因为第二遍再次开始.

如何一次性获取所有名称,完全按字母顺序排列?有没有办法在SQL中执行此操作,或者我是否需要构建两个数组并在PHP之后重新按字母顺序排列它们?

编辑

数据库看起来像这样:

last_name primary_name secondary_name

----------------------------------------

Abrams Joe Susan

Miller Sam Abby

期望的输出将是这样的:

["Joe Abrams","Susan Abrams","Abby Miller","Sam Miller"]

相反,如果第一遍得到所有的丈夫,第二遍通过所有的妻子,我得到这样的东西:

["Joe Abrams","Sam Miller","Susan Abrams","Abby Miller"]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值