【问题标题】:how to combine 2 sql queries to get 1 result如何组合 2 个 sql 查询以获得 1 个结果
【发布时间】:2017-03-10 14:49:11
【问题描述】:
SELECT users.name, users.registrationdate, users.city, users.status
FROM users, referrals
WHERE users.username= referrals.referrals AND referrals.username='user_name'

SELECT adearning, reffearning
FROM earnings WHERE usersname='user_name33'

如何将这两个查询组合起来,就好像第一个查询条件不匹配并且不运行.. 然后第二个查询应该运行并在条件匹配时返回一些值

【问题讨论】:

  • 你能分享一些样本数据和你想要得到的结果吗?这将有助于使问题更清晰
  • 这些是对不同表和列计数/类型的不同查询。这是您可能应该在应用层中处理的事情。
  • 你应该有相同的返回列(数量和类型)来使用UNIONdev.mysql.com/doc/refman/5.7/en/union.html
  • ***注意**** 如果两个查询都成功运行,则结果必须作为单个结果(数组)返回
  • 您可以单独运行并将其合并到一个数组中。

标签: mysql database codeigniter activerecord


【解决方案1】:

试试这个

$query1 = $this->db->query("SELECT users.name, users.registrationdate, users.city, users.status 
                            FROM users, referrals 
                            WHERE users.username = referrals.referrals AND referrals.username='user_name'")
$result1 = $query1->result_array();


$query2 = $this->db->query("SELECT adearning, reffearning FROM earnings WHERE usersname='user_name33' ")
$result2 = $query2->result_array();


$dataArray = array_merge($result1, $result2);

如果要检查结果,在行尾添加这个

print_r($dataArray);die;

在此它会将它们全部打印在一个数组中


示例

$result1 = array(
    '0' => 'sjhccsd', 
    '1' => 'ddd', 
    '2' => 'df', 
    '3' => 'dfd', 
    );

$result2 = array(
    '0' => 'sjhccsd', 
    '1' => 'ddd', 
    '2' => 'df', 
    '3' => 'dfd', 
    );


$dataArray = array_merge($result1, $result2);

print_r($dataArray);

输出Array ( [0] => sjhccsd [1] => ddd [2] => df [3] => dfd [4] => sjhccsd [5] => ddd [6] => df [7] => dfd )

【讨论】:

  • 谢谢....它与 print_r($dataArray) 一起工作,但是如何在不同的地方打印这些不同的变量...我这样做遇到了困难
  • 你的意思是在不同的地方打印这些不同的变量在你的问题中添加一些代码。
  • 我想这样做,但它不起作用... print_r($post['name']); print_r 也打印名称,但它也会给出错误“未定义的索引名称”
  • name;.... 在视图中它说“试图获取非对象的属性"
  • echo $post['name'];--------- 此代码在视图中正确发布名称但也给出此错误----------- ----遇到 PHP 错误严重性:通知消息:未定义索引:名称文件名:public/dashboard.php 行号:59--------------------- ----
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多