gpt4 book ai didi

mysql - 在一个sql中连接3个表

转载 作者:行者123 更新时间:2023-11-29 06:04:16 27 4
gpt4 key购买 nike

我有 3 个表,如下所述,

table1 'ads'

id userid
1 47
2 47 //ads.id = adcat.adid
3 45
4 47

table2 'adcat'

adid catid
1 1
2 3
3 3 // adcat.catid = categories.id
4 3

table3 'categories'

id name
1 mathematic
2 biolog
3 leteratur
4 chemi

我想要的是从 ads.id 获取 categories.id

我已经尝试过了

SELECT categories.id, ads.id 
FROM ads
INNER JOIN adcat ON ads.id = adcat.adid
INNER JOIN categories ON categories.id = adcat.catid

但它并不是由确切的值得出的。

obs:我没有收到任何错误,只是没有得到确切的值。任何帮助将不胜感激。

最佳答案

如果 adcat.catid =categories.id 并且这是您需要的唯一值,则似乎没有理由进入类别表。

SELECT ads.id,adcat.catid
FROM ads
INNER JOIN adcat
ON ads.id=adcat.adid

在此查询中使用 $row['catid']

如果将来您需要类别中的更多列,那么您将需要双连接:

SELECT categories.id *AS id*,ads.id *AS ads_id*
FROM ads
INNER JOIN adcat ON ads.id = adcat.adid
INNER JOIN categories ON categories.id = adcat.catid

在此查询中使用 $row['id']

请参阅 *AS id**AS ads_id* - 删除星号,您将为列指定一个 ALIAS ,这基本上就像昵称,这在许多情况下都很方便,但在这种情况下尤其重要,因为两列都具有相同的名称。所以现在你可以调用 $row['id'] 并获取categories.id

关于mysql - 在一个sql中连接3个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310096/

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