Здравствуйте, это мой первый вопрос. Я новичок в php mysql и надеюсь, что вы все экспертно поможете.

У меня есть таблица для блога, и я пытаюсь получить название, если type = "C" имеет аудиофайл. Пожалуйста, обратитесь к изображению для получения подробной информации о таблице

Вот изображение http://i.stack.imgur.com/XK9Cr.jpg

Я могу написать простой запрос, но мне довольно сложно понять, как я могу получить заголовок, проверяя, есть ли в C аудиофайл, а не ноль

Запрос: "SELECT * FROM blogpost WHERE type='P' AND audio IS NOT NULL";

Очевидно, что это ничего не будет отображать, и это моя путаница, как я могу написать запрос, в котором он будет определять C таким образом "SELECT * FROM blogpost WHERE type='C' AND audio IS NOT NULL";, но чем здесь, как я могу получить заголовок P?

Может ли кто-нибудь помочь мне получить титул для типа P.

2
Artist 1 Апр 2013 в 23:43
Пожалуйста, включите весь свой код (рабочий или нет) в сообщение
 – 
Ejaz
1 Апр 2013 в 23:49

1 ответ

Лучший ответ

Вам нужно снова присоединиться к blogpost, чтобы у вас был стол для родителя и для ребенка.

SELECT p.title FROM blogpost p
JOIN blogpost c ON (p.postid = c.Parentid)
WHERE c.blogtype = 'C' AND c.audio IS NOT NULL
AND p.blogtype = 'P'

Последняя строка, вероятно, не нужна; только если C могут быть родителями C и вы хотите их исключить.

3
Explosion Pills 1 Апр 2013 в 23:46
Спасибо за быстрый ответ. Это работает, но дает заголовок более одного раза
 – 
Artist
1 Апр 2013 в 23:53
Что вы подразумеваете под более чем одним разом ?
 – 
Explosion Pills
1 Апр 2013 в 23:53
Хорошо, я могу сгруппировать это по c.parentid, верно? это работает, спасибо большое
 – 
Artist
1 Апр 2013 в 23:58
Я не могу проголосовать, так как я новичок. Но я выбрал ответ
 – 
Artist
2 Апр 2013 в 00:18