2009-12-18 21 views
32

Uzun süredir bu çalışmayı denemeye çalışıyorum ama işe yaramıyor gibi görünüyor, belki de mümkün değil, yapmak istediğim şey mysql birleştirme sorgusu kullanarak Bu örnekte olduğu gibi i ...mysql sorgusunu kullanarak birleştir?

SELECT * 
FROM Table1 
INNER JOIN Table2 ON Table1.col LIKE '%' + Table2.col + '%' 

bulundu ama sadece hiç işe görünmüyor, parlak olacaktır verilebilir herhangi bir yardım, teşekkürler!

cevap

63

deneyin

SELECT * 
FROM Table1 
INNER JOIN Table2 ON Table1.col LIKE CONCAT('%', Table2.col, '%') 

MySQL durumda portuna uygulamanızı istiyorum böylece Michael tarafından belirtildiği gibi, sen || birleştirme işlemi olarak kullanılan alternatif bir bölüm olması gerekir, diğer veritabanları farklı dize birleştirme yapar başka bir cevapta. Bu operatör, MySQL'de çalışmıyor, çünkü or.

+2

+1 ve intiharımız, sohbetimizin bir sonucu olarak ;-) –

+0

tamam şimdi çalışmıyor, ancak daha fazla geri dönmesi gerektiğinde sadece birkaç satır döndürüyor, sadece tablodaki ilk satırı kullanıyor gibi ? – David

+0

Belki istediğin bir çapraz birleştirmedir? Bu açık örnek için t1, t2'den t1.col ... –

1

yerine bu konuda nasıl yine her iki tablodan her şeyi seçmekte yana

SELECT * FROM Table1, Table2 WHERE Table1.col LIKE '%'+Table2.col+'%'; 

, bu muhtemelen orada tanınacak.

İlgili konular