【问题标题】:Select from multiple tables on reference table with same column name MYSQL/PHP从具有相同列名 MYSQL/PHP 的引用表上的多个表中选择
【发布时间】:2021-11-15 14:44:10
【问题描述】:

我需要一些有关 MySQL/PHP 的帮助。从代码的角度来看,哪个执行速度更快。

我有以下表格

1. table_content
--------------------------------
id      | section   | content_id
--------------------------------
1       | A         | 15
2       | B         | 25
3       | A         | 9
--------------------------------


2. table_a
--------------------------------
id      | name      | message
--------------------------------
9       | John      | Hello Everyone
15      | Smita     | Hi
17      | Vinayak   | How are you?
--------------------------------


3. table_b
--------------------------------
id      | label     | description
--------------------------------
1       | David     | D1
5       | Alia      | D2
25      | Vinay     | D3
--------------------------------

我有上面的表格结构。对我来说table_content 是主表。我想通过 MySQL/PHP [As array and section as key] 进行以下输出。

Output
------------------------------------------------
id      | section   | name      | message
------------------------------------------------
1       | A         | Smita     | Hi
2       | B         | Vinay     | D3
3       | A         | John      | Hello Everyone
------------------------------------------------

我尝试过使用 SWITCH 案例。但没有得到准确的输出。

哪个性能更好,执行速度更快?使用 MySQL 或 PHP。我有成千上万这样的数据。

请帮我解决这个问题。

【问题讨论】:

  • 这能回答你的问题吗? Joining three tables using MySQL
  • 没有。是加盟。我想在特定的部分。 @nbk
  • 是的,它是一个连接。我会发布一个答案给你看

标签: php mysql database


【解决方案1】:

应该通过 JOIN 来实现。

还要确保您配置了适当的索引,否则当您处理大量数据时它会表现不佳。

【讨论】:

  • 这是评论而非答案
  • 是的,我已经告诉他他需要做什么了。用勺子喂人没有意义,否则他们不会学习。我还强调了潜在的陷阱,供他们调查以进一步学习以确保他正在构建的任何东西都能处理任何潜在的 lareg 量。
【解决方案2】:

正如我在评论中发布的那样,您需要Join 这两个表,必须是UNION

SELECT tc.`id`, tc. `section` ,t1.`message`
FROM table_content tc JOIN (SELECT `id`, `name`, `message` FROM table_a UNION SELECT `id`, `label`, `description` FROM table_b) t1 
ON tc.`content_id` = t1.`id`
编号 |部分 |信息 -: | :-------- | :------------- 1 |一个 |你好 2 |乙| D3 3 |一个 |大家好

db小提琴here

【讨论】:

    猜你喜欢
    • 2020-01-03
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多