【问题标题】:advice needed for my UNION ALL query我的 UNION ALL 查询所需的建议
【发布时间】:2013-11-19 15:29:16
【问题描述】:

我的桌子是

用户:userID - userLogo 内容:用户 ID - contentID - contentImage 促销:promoID - 用户 ID - promoImage

这是我的查询

SELECT userID,userLogo FROM user
WHERE userID=4
UNION ALL
SELECT userID,contentImage FROM content
WHERE userID=4
UNION ALL
SELECT userID,promoImage FROM promo
WHERE userID=4
ORDER BY userID

结果是

userID userLogo 4 ../images/user/000004.jpg 4 ../图像/内容/000003.jpg 4 ../图像/内容/000004.jpg 4 ../图像/内容/000005.jpg 4 ../图像/内容/000006.jpg 4 ../images/promo/000003.jpg 4 ../images/promo/000004.jpg 4 ../images/promo/000005.jpg

得到的结果和我想要的很相似,但是列标题不是我想要的

关于 php.. 是否可以使用上面的查询来取消链接结果中的所有图像?

还有一个问题,谈谈效率,我的查询是否会给数据库带来沉重的负担?如果是,请提供建议或任何解决方案。

谢谢!

【问题讨论】:

  • 1.使用AS 声明标题(对于UNION 中的第一部分来说已经足够了)。 2. 是的,有可能。 3. 取决于数据大小和表结构。
  • 一般来说,在一个问题中提出 3 个问题并不是一个好主意,尤其是在这种情况下,当它们与不同的事物相关时。最好问一个单独的问题is it possible to unlink images from php 查询本身和数据库架构与该问题几乎不相关。
  • 注意了,以后不会了。

标签: php mysql sql


【解决方案1】:

您可以使用第三列,以便检查符合条件的图像类型

SELECT 
    userID,
    userLogo,
    'userLogo' as Type 
FROM user 
WHERE userID=4

UNION ALL

SELECT 
    userID,
    contentImage,
    'contentImage' as Type 
    FROM content 
    WHERE userID=4

UNION ALL

SELECT 
    userID,
    promoImage,
    'promoImage' as Type 
FROM promo 
WHERE userID=4
ORDER BY userID

【讨论】:

    【解决方案2】:
    1. 当您使用联合时...。首先选择语句列名将是结果表列名...要获取特定的列名,您需要像这样使用 AS 运算符
    "SELECT userID AS YOUR_CHOICE,userLogo AS 'your_choice' FROM user
    WHERE userID=4
    UNION ALL
    SELECT userID,contentImage FROM content
    WHERE userID=4
    UNION ALL
    SELECT userID,promoImage FROM promo
    WHERE userID=4
    ORDER BY userID"
    
    1. 是的
    2. 如果表很大,那就不是个好主意..那个时候可以使用JOIN..

    【讨论】:

    • 当我使用 join 时,用户 ID 以 distict 值显示..导致查询结果未显示完整文件路径 ...
    • 文件路径取决于您的脚本...不在查询中..所以,在适当的脚本中运行查询..但是!!!!如果路径字符串小于数据库路径字段大小,则可以增加数据库路径字段大小
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 2018-01-07
    相关资源
    最近更新 更多