【问题标题】:join tables and display all the results php mysql?加入表格并显示所有结果 php mysql?
【发布时间】:2014-09-02 16:59:31
【问题描述】:

我正在尝试加入 mysql 数据库中的两个表,但显示所有结果,然后对匹配的表说“加入结果”之类的词。

为了进一步解释这一点,假设我有一张这样的表:

表名: 小时

id  MORNING  AFTERNOON  EVENING

1    10.00     1.00      5.00

2    11.00     2.00      6.00

3    12.00     3.00      7.00

第二张桌子: 订单

id  firstname  timewanted

4    David      1.00     

现在在我的页面上,我想 JOIN 两个表,但显示第一个表 hours 的所有结果,并对连接中匹配的结果执行一些操作,在上面的示例中是AFTERNOON1.00(假设我需要回显一条消息,例如“这个地方是为了那个结果而被占用的”)

目前我正在使用此代码,但这不会显示所有结果:

$sql = "SELECT MORNING 
FROM hours t1
WHERE t1.MORNING NOT IN (SELECT timewanted FROM orders)";

有人可以就此提出建议吗?

这将显示表 1 中的所有结果:

SELECT t1.MORNING, t2.timewanted FROM hours t1 LEFT JOIN orders t2 ON t1.MORNING=t2.timewanted;

但我仍然不知道如何处理匹配的那个!

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您的意思是在left join 查询中的AFTERNOON 列上JOIN,例如

    SELECT t1.MORNING, 
    t2.timewanted,
    CASE WHEN t2.timewanted IS NOT NULL THEN 'joined result' END AS Extra_Column
    FROM hours t1 
    LEFT JOIN orders t2 
    ON t1.AFTERNOON=t2.timewanted;
    

    顺便说一句:你想对匹配的记录做什么?

    如何对匹配的对象做某事

    【讨论】:

    • 不。您似乎只是复制了我自己的代码并将 MORNING 更改为 AFTERNOON!大声笑
    • 我不需要复制,只是改变了加入的专栏,因为如果你加入早上的专栏,你不会得到任何匹配的记录。如果这不是您要查找的内容,那么我不介意删除我的答案。
    • 可以说我得到了所有的结果(匹配的和不匹配的)......现在我想为匹配的结果回显一个单词或其他内容。我希望它现在更清楚了。
    • 你检查过编辑的答案吗?试试那个查询,希望这就是你要找的。​​span>
    • 看起来它应该做我需要的,但不幸的是它没有做任何事情。它得到所有结果,但它不会为匹配的结果回显“加入结果”。
    猜你喜欢
    • 1970-01-01
    • 2013-08-11
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多