内部用LIKE Join,有什么问题?
Inner Join with LIKE, what is wrong?
我有两张桌子
Table 'prd_help_zusatz'
ID Title ART
1 Text 1 material
2 Text 2 material
3 Text 3 farbe
Table 'prd_produkt'
ID PRD_material ...
1 [1][2]
2 [2]
prd_produkt
中的PRD_material
是[]
中prd_help_zusatz
中的ID,选择了多少材料。现在我想给出 prd_help_zusatz
中所有可能的值,这些值是 prd_produkt
.
使用的材料
我的Select-代码
SELECT h.ID
FROM prd_help_zusatz as h, prd_produkt as p
WHERE h.ART = 'material'
AND p.PRDART = 'uhr'
AND h.ID LIKE p.PRD_material
GROUP BY h.Titel_d
问题是,PRD_material
上的值不相等。我怎么能select这个? .. h.ID LIKE '['p.PRD_material']'
不起作用。
您需要在要查找匹配项的地方使用 %
运算符。如果你想在一列上比较一列,你可以把它放在两边。如果你只想比较左边,你可以把它放在那里。我建议查看此线程以获得更多见解:How to use column name as part of a LIKE statement in a WHERE clause of a JOIN
所以:
SELECT h.ID
FROM prd_help_zusatz as h,
prd_produkt as p
WHERE h.ART = 'material'
AND p.PRDART = 'uhr'
AND h.ID LIKE '%' + p.PRD_material + '%'
GROUP BY h.Titel_d
我建议你使用这个查询:
SELECT *
FROM prd_help_zusatz h
JOIN prd_produkt p
ON p.PRD_material LIKE CONCAT('%', h.ID, '%') AND
p.PRDART = 'uhr'
我有两张桌子
Table 'prd_help_zusatz'
ID Title ART
1 Text 1 material
2 Text 2 material
3 Text 3 farbe
Table 'prd_produkt'
ID PRD_material ...
1 [1][2]
2 [2]
prd_produkt
中的PRD_material
是[]
中prd_help_zusatz
中的ID,选择了多少材料。现在我想给出 prd_help_zusatz
中所有可能的值,这些值是 prd_produkt
.
我的Select-代码
SELECT h.ID
FROM prd_help_zusatz as h, prd_produkt as p
WHERE h.ART = 'material'
AND p.PRDART = 'uhr'
AND h.ID LIKE p.PRD_material
GROUP BY h.Titel_d
问题是,PRD_material
上的值不相等。我怎么能select这个? .. h.ID LIKE '['p.PRD_material']'
不起作用。
您需要在要查找匹配项的地方使用 %
运算符。如果你想在一列上比较一列,你可以把它放在两边。如果你只想比较左边,你可以把它放在那里。我建议查看此线程以获得更多见解:How to use column name as part of a LIKE statement in a WHERE clause of a JOIN
所以:
SELECT h.ID
FROM prd_help_zusatz as h,
prd_produkt as p
WHERE h.ART = 'material'
AND p.PRDART = 'uhr'
AND h.ID LIKE '%' + p.PRD_material + '%'
GROUP BY h.Titel_d
我建议你使用这个查询:
SELECT *
FROM prd_help_zusatz h
JOIN prd_produkt p
ON p.PRD_material LIKE CONCAT('%', h.ID, '%') AND
p.PRDART = 'uhr'