Hey im yazma sql sorgusu, neredeyse yaptım ama önemli olan şeyi değiştirmem gerekiyor ama yine de tamir etme fikrim yok. Benim SQL örneğim varDeğerlerin WHERE IN yan tümcesiyle olmadığını kontrol edin - MYSQL
SELECT post.id,post.name as post_name,
(SELECT users.login FROM users WHERE post.creator = users.id) creator,
(SELECT COUNT(*) FROM recommends WHERE recommends.idea_id = post.id) recommends,
(SELECT COUNT(*) FROM comments WHERE comments.idea_id = post.id) comments,
GROUP_CONCAT(tags.tag SEPARATOR ',') as tags
FROM posts
LEFT JOIN tags
ON post.id = tags.idea_id
WHERE post.name IN
(
SELECT post.name FROM posts
JOIN tags ON post.id = post.idea_id
WHERE tags.tag IN ('X','Y','Z')
)
GROUP BY post.name
Sorun nedir? X veya Y veya Z’niz yoksa, sorgu hala çalışıyor. Nasıl tamir edeceğini bilmiyorum, bazı VARSAYILAN deyimleri denedim veya BT değil, ama çalışmıyor. Yardım için teşekkürler. Eğer etiketlerden herhangi birine sahip mesajların arıyoruz
? Sorgunuz aşırı karmaşık olsa da, sorgunuz etiketlerden birine sahip olan yayınları aramak için mükemmel bir anlam ifade ediyor. –
İsterseniz, bu basit, iki aşamalı eylemi izlemeyi düşünün: 1. Henüz yapmadıysanız, CREATE ve INSERT ifadelerini (ve/veya bir sqlfiddle) sağlayın, böylece sorunu daha kolay çoğaltabiliriz. 2. Henüz yapmadıysanız, 1. adımda sağlanan bilgilere karşılık gelen istenen bir sonuç kümesi belirtin. – Strawberry
Evet, ancak bu etiketlerden ('X', 'Y', 'Z') biri varsa, örneğin ileti etiketlerinden yok, ancak geri kalanı mevcut olmasına rağmen sonuç yanlıştır. –