[英]Mysql- Select Query from two table
我有两个表item_info和item_log表如下:
现在我需要按“ like” item_name搜索,结果将显示任何item_id的最后一行,例如:
你可以尝试这样的事情:
SELECT table1
。*,MAX(table1.id)AS last_id,
table2
。 table2.id
从(表table1
)
将table2
联接到table1
。 table2.id
= table2
。 table2.id
在哪里item_name
喜欢'%nameOfItem%'
GROUP BY表table1
。 table2.id
ORDER BY table1
。 id
描述
我的功能有点类似,我必须为每个线程检索最近的消息。 因此,我必须加入表并将其按消息ID分组,并按消息发送的降序排列。
基本上,逻辑是相同的。 让我知道是否无效
问题解决了
SELECT item_log.*,item_info.name
FROM (item_log)
JOIN item_infos ON item_log.item_id = item_infos.item_id
WHERE id IN (SELECT MAX( item_log.id )
FROM (item_log)
JOIN item_infos ON item_log.item_id = item_infos.item_id
WHERE item_name LIKE '%G%'
GROUP BY item_log.item_id
ORDER BY item_log.id desc)
AND item_name LIKE '%G%'
GROUP BY item_log.item_id
ORDER BY item_log.id desc
SELECT
*
FROM
(SELECT
item_info.`item_name`,
item_log.`item_id`,
item_log.`id`,
item_log.`item_barcode`,
item_log.`buy_price`
FROM
item_log,
item_info
WHERE item_info.`item_id` = item_log.`item_id`
ORDER BY id DESC) AS i
GROUP BY item_id ;
I think this is what you are expecting right ?
这可能对您有用:
SELECT l.id,i.item_id,l.item_barcode,i.item_name,l.buy_price
FROM item_info i
LEFT JOIN item_log l ON i.item_id=l.item_id
WHERE i.item_name LIKE '%G%'
ORDER BY l.id desc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.