【问题标题】:Select data from 2 different tables从 2 个不同的表中选择数据
【发布时间】:2014-04-10 19:52:58
【问题描述】:

我不想写 2 个不同的查询,而是一个人完成

$query = $pdo->prepare("
    SELECT      Car_Name
    FROM        Car_data
    WHERE       Car_Code = :carCode
    SELECT      Fruit_Name
    FROM        Fruit_Data
    WHERE       Fruit_Code = :fruitCode;
");
$query->bindParam(':carCode', $header['Car_Code']);
$query->bindParam(':fruitCode', $header['Fruit_Code']);
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
if (!empty($result)) {
}

我希望收到以下格式的数据:

如果两个表都有数据:

Car_Name = 'Golf'
Fruit_Name = 'Banana'

如果只有一张表有数据:

Car_Name = 'Golf'
Fruit_Name = ''

Car_Name = 'Golf'

我怎样才能做到这一点?

【问题讨论】:

    标签: mysql sql sql-server pdo


    【解决方案1】:
    $query = $pdo->prepare("
      SELECT (SELECT      Car_Name
              FROM        Car_data
              WHERE       Car_Code = :carCode ) as Car_Name ,
             (SELECT  Fruit_Name
              FROM    Fruit_Data
              WHERE   Fruit_Code = :fruitCode) as Fruit_Name;
    ");
    

    使用子查询,这应该可以工作

    【讨论】:

    • 就性能而言,这是否优于 2 个不同的查询?
    • 我认为这个答案会更快,因为只需要 1 个到 db 的连接,但你必须测试什么是最适合你的选择
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2012-12-28
    • 2013-09-04
    • 2017-12-05
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多