sql-如何从2个表中获取相关值

3duebb1j  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(395)

我有一个基于userid的表,其中包含用户最喜欢的图像
我有另一个表,其中包含用户的用户名和用户id
我想运行一个查询,在查询中插入一个名称,然后检索userid并使用这个userid搜索收藏夹表,返回用户名和所选图像
我是sql新手,非常感谢您的帮助

SELECT * 
FROM  `atabl_users` 
WHERE  `name` LIKE  'user to input value' 
LIMIT 0 , 30

SELECT * 
FROM  `atabl_joomgallery_users` 
WHERE  `uid` =17
ORDER BY  `azc6a_joomgallery_users`.`uid` ASC 
LIMIT 0 , 30
w6lpcovy

w6lpcovy1#

如果需要两个表中的所有信息,则需要它们共享的id,以便它们可以链接(联接)在一起。
根据您提供的信息,我假设两个表都包含值“uid”作为用户id。
因此,应使用以下查询:
“selectfrom atabl\u users au inner join atabl\u joomgallery\u users aju on au.uid=aju.uid au.name like在哪里?和aju.uid=17限制30“
我已经取消了订单,因为你需要另一个。如果指定为17,则按uid排序没有用。
为了解释,我们要求从表atable\ users中获取所有信息
,然后为其指定一个au的速记值,以便于以后阅读。然后,我们根据这两个唯一值将这个表集与另一个表连接起来。然后我们可以使用where值优化搜索,最后将结果集限制为30。

jk9hmnmh

jk9hmnmh2#

使用join组合查询

SELECT j.* 
FROM  atabl_joomgallery_users j
JOIN atabl_users u ON u.id = j.uuserid
WHERE u.name LIKE ?

请注意,like可能会返回多个用户,因此如果您获得一个唯一的用户名作为输入值,则可以将where子句更改为

WHERE u.name = ?

相关问题