Reputation: 1224
This is an odd conditional statement - and I am not sure if it is possible.
I have a MYSQL QUERY:
SELECT
cute_news.title, cute_news.id, cute_news.avatar, cute_news.category,cute_news.date, cute_fields.YouTubeTN, cute_fields.alternate_title, cute_fields.NewsSource, cute_fields.alternate_url, cute_fields.cf_id
FROM cute_news, cute_fields
WHERE
YEAR(FROM_UNIXTIME(cute_news.date)) = '2007' AND
cute_fields.cf_id = cute_news.cf_id AND
FIND_IN_SET ('10', cute_news.category)
ORDER BY cute_news.date DESC
My question is I want :
IF ( cute_fields.cf_id = cute_news.cf_id )THEN
{ SELECT
cute_news.title, cute_news.id, cute_news.avatar, cute_news.category,cute_news.date, cute_fields.YouTubeTN, cute_fields.alternate_title, cute_fields.NewsSource, cute_fields.alternate_url, cute_fields.cf_id
FROM cute_news, cute_fields
WHERE
YEAR(FROM_UNIXTIME(cute_news.date)) = '2007' AND
cute_fields.cf_id = cute_news.cf_id AND
FIND_IN_SET ('10', cute_news.category)
ORDER BY cute_news.date DESC }
ELSE {
SELECT
cute_news.title, cute_news.id, cute_news.avatar, cute_news.category,cute_news.date
FROM cute_news
WHERE
YEAR(FROM_UNIXTIME(cute_news.date)) = '2007' AND
FIND_IN_SET ('10', cute_news.category)
ORDER BY cute_news.date DESC }
ORDER BY..
Having the hardest time to actually execute this.. Maybe it isn't possible. Thanks in advance NINJAS!
Upvotes: 0
Views: 52
Reputation: 8093
If I understand your requirement clearly, you need Left Join
. If will give you NULL
for your Else
part.
SELECT
cute_news.title, cute_news.id, cute_news.avatar, cute_news.category,cute_news.date,
cute_fields.YouTubeTN, cute_fields.alternate_title, cute_fields.NewsSource, cute_fields.alternate_url, cute_fields.cf_id
FROM cute_news n
LEFT JOIN
cute_fields f
ON f.cf_id = n.cf_id
WHERE
YEAR(FROM_UNIXTIME(cute_news.date)) = '2007' AND
FIND_IN_SET ('10', cute_news.category)
ORDER BY cute_news.date DESC
Upvotes: 1