2015-02-24 3 views
0

Я пытаюсь получить записи из таблицы "tbl_gig" при сравнении разных строк в ней. enter image description here Я попытался это, но не повезло:Запрос Sql для сравнения одинаковых полей разных строк в одной таблице в mysql

SELECT * FROM tbl_gig as t2 INNER JOIN tbl_gig as t3 
WHERE t2.gig_city=t3.gig_city 
    AND t2.artist_id=t3.artist_id 
    AND t2.partner_id < t3.partner_id 
GROUP BY t2.gig_eventDate; 

Ожидаемый результат:

gig_id gig_artist_id gig_partner_id 

1  1    1 
2/3  1    1/2 
4  1    1 

Пожалуйста помочь в этом.

+0

Каков фактический выход? Что случилось? –

+0

На каком основании вы хотите объединить две строки? – SMA

+0

Вы упоминаете PHP, так почему бы «объединить» строки в MySQL? – Strawberry

ответ

0
SELECT 
    GROUP_CONCAT(gig_id SEPARATOR '/') as gig_id, 
    artist_id , 
    GROUP_CONCAT(partner_id SEPARATOR '/') as partner_id 
    FROM tbl_gig 
    GROUP BY artist_id 
+0

Это не означает, что «/» означает, что любая из этих строк должна отображаться – anusha

+0

, поэтому вы можете удалить отдельную строку. он должен работать, как вы просили :-) Вы дали нам ожидаемый результат - я сделал запрос, чтобы получить его :-) Вам нужна помощь для удаления разделителя? или с чем еще я могу помочь? – Alex

+0

На основе «partner_id», если строки, имеющие разные partner_id с одинаковым именем artist_id, city, country, date (не учитывайте время в нем), должны отображаться как одна строка вдоль других строк. Пожалуйста, проверьте скриншот, не ожидаемый выход один раз – anusha

Смежные вопросы