gpt4 book ai didi

mysql - 左连接,我需要有关代码的解释

转载 作者:行者123 更新时间:2023-11-29 06:50:23 24 4
gpt4 key购买 nike

我正在观看教程。有一段代码我不明白应该做什么。

$sql = 'SELECT p.*, 
a.screen_name AS author_name,
c.name AS category_name
FROM
posts p
LEFT JOIN
admin_users a ON p.author_id = a.id
LEFT JOIN
categories c ON p.category_id = c.id
WHERE
p.id = ?';

我读过有关左连接的内容,但我不明白它们。有人可以解释一下我分享的代码吗?提前致谢!

最佳答案

假设您有两张 table 。一个表存储有关网站上程序员的信息,另一个表则跟踪他们的在线购买情况。

程序员表

+--------------------------------------------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Desire | 32 | 123 fake s| 3000.00 |
| 2 | Jamin | 25 | 234 fake s| 2500.00 |
| 3 | Jon | 23 | 567 fake s| 2000.00 |
| 4 | Bob | 30 | 789 fake s| 1500.00 |
| 5 | OtherGuy | 31 | 890 fake s| 1000.00 |
| 6 | DudeMan | 32 | 901 fake s| 500.00 |
+--------------------------------------------+

采购表

+---------------------------------------------+
| ORDER_ID | PROG_ID | DATE | PRICE |
+-------------+---------+---------------------|
| 1 | 1 | 1-1-2017 | 100 |
| 2 | 2 | 1-2-2017 | 200 |
| 3 | 6 | 1-3-2017 | 300 |
+---------------------------------------------|

您决定需要创建一个新表来将此信息合并到包含以下内容的表中:您想要的某些列。

例如,您认为为了运输目的最好有一张 table 包含 ID、NAME、PRICE 和 DATE 列。

目前,我们的表格并未在单个表格中显示所有内容。

如果我们要左连接这些表,我们最终会填充所需的列使用 NULL 值,其中没有要连接的信息。

SELECT ID, NAME, PRICE, DATE
FROM PROGRAMMERS
LEFT JOIN PURCHASES
ON PROGRAMMERS.ID = PURCHASES.PROG_ID;

请注意,我正在从起始表中选择所需的列,然后加入右侧的表即使可能缺少信息。

结果表

+-------------------------------------+
| ID | NAME | PRICE | DATE |
+----+----------+-----------------+---+
| 1 | Desire | 100 | 1-1-2017 |
| 2 | Jamin | 200 | 1-2-2017 |
| 3 | Jon | NULL | NULL |
| 4 | Bob | NULL | NULL |
| 5 | OtherGuy | NULL | NULL |
| 6 | DudeMan | 300 | 1-3-2017 |
+-------------------------------------+

有关 SQL JOIN 之间差异的直观表示,请查看 https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins

关于mysql - 左连接,我需要有关代码的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47727990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com