【问题标题】:SQL combining multiple columns from same table while querying multiple tablesSQL在查询多个表时组合来自同一个表的多个列
【发布时间】:2015-03-10 13:58:00
【问题描述】:

我有三个表格,如下所示。

  1. usedetails [ID,first_name,last_name,telephone,email]

  2. 地址[ID,街道号码,街道名称,城镇,县,邮编,用户详情ID]

  3. 预订 [ID,customerID,pickup_address_id,dropoff_address_id,charge,no_of_passenger]

地址表包含两种类型的地址,即pickoff 和dropoff。我想将两个地址中的每一个显示为一个字符串。以下是我的查询。

query = "SELECT A.streetnumber,
                        A.streetname,
                        A.town,
                        A.postcode
                    AS pickup_point
                        AB.streetnumber,
                        AB.streetname,
                        AB.town,
                        AB.postcode
                    AS  dropoff_point
                        UD.first_name,
                        UD.last_name,
                        UD.telephone,
                        UD.email
                    FROM userdetails UD 
                    INNER JOIN booking B
                    ON B.customerID = UD.ID
                    INNER JOIN address A
                    ON B.pickup_address_id = A.ID
                    INNER JOIN address AB
                    ON AB.drop_off_address_id = A.ID
                    WHERE UD.ID = A.userdetailsID OR UD.ID = AB.userdetailsID";

【问题讨论】:

    标签: mysql


    【解决方案1】:

    试试CONCAT函数:

    SELECT CONCAT(A.streetnumber,
                  ' ',
                  A.streetname,
                  ' ',
                  A.town,
                  ' ',
                  A.postcode) AS pickup_point, ...
    

    或 CONCAT_WS 函数将分隔符作为第一个参数传递:

    SELECT CONCAT_WS(' ',
                     A.streetnumber,
                     A.streetname,
                     A.town,
                     A.postcode) AS pickup_point, ...
    

    【讨论】:

    • 非常感谢它的工作,但是我的查询仅适用于 phpMyAdmin,但不适用于 HTML 页面。有什么可能的原因吗?
    • 你的 HTML 页面的输出是什么?
    • 我缺少一些变量的开始和结束标签。非常感谢。它现在可以工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    相关资源
    最近更新 更多