![](/img/trans.png)
[英]How to join two tables of mysql and concatenate multiple rows into single cell?
[英]MySQL Join Query By Multiple ID In Single Cell
我有以下數據(樣本)用於模板表
TempName, ItemID
Test1, 1/5/6/8/11
Test2, 2/4/5/8/10
因此,我想進行一個SQL查詢,該查詢將與Item Tables聯接並返回ItemID字段中匹配/存在的所有數據行
類似於:選擇*從Items.ID = Template.ItemID的項目內部聯接模板,其中模板名稱='Test1';
我無法計算出正確的sql查詢,因此,現在我使用的是for循環,但我更喜歡使用襯板或更好的查詢/腳本來處理。
目前我的代碼是這樣的:
Select ItemID From Template Where Name = 'Test1';
$strItems = explode('/', ItemID)
foreach($strItem in $strItems)
{
select * from Items where ID = $strItem
}
那不是漂亮/格式正確的代碼,而是為了展示我現在的工作方式。但是我正在尋找更好的方法:)
最好的祝福
您可以在此處通過單個查詢使用FIND_IN_SET
:
SELECT i.*
FROM Items i
INNER JOIN Template t
ON FIND_IN_SET(i.ID, REPLACE(t.ItemID, '/', ',')) > 0
WHERE
t.Name = 'Test1';
但是請注意,根本不像在Template
表中那樣存儲未標准化的數據。 在單獨的行中存儲ItemID
值會更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.