Как правильно написать mysql запрос ?

$search = mysql_query("SELECT * FROM albums INNER JOIN  artists  WHERE  artists.aName  LIKE '%".$s."%'  or albums.aName LIKE '%".$s."%' ") or die("Error:" . mysql_error());

Вот этот не работает.
И ошибки не выдает, но и не получаю выборку...
  • Вопрос задан
  • 2311 просмотров
Решения вопроса 1
Serhioromano
@Serhioromano
Web Developer
SELECT al.*, ar.* 
     FROM albums AS al
LEFT JOIN artists AS ar ON ar.id = al.artist_id
    WHERE ar.aName LIKE '%...%'
       OR al.aName LIKE '%...%'


Этот запрос подойдет если в базе не много записей. Если же записей много (примерно больше 100 000), и в условии у вас првоерка по занчениям в 2х табилицах то можно сделать так. Но учтите что на маленьких таблицах в этом нет смысла.

SELECT al.*, ar.* 
     FROM albums AS al
    WHERE al.aName LIKE '%...%'
      AND al.id IN (
         SELECT ar.id 
           FROM artists AS ar 
          WHERE ar.aName LIKE '%...%' )


В этом запросе так же получается на одно условие меньше.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
select a.id,a.aName as albums_name,s.id as artist_id,s.aName as artist_name
from albums a
join artists s on s.aId = a.aArtist and s.aName like '%$s%'
where a.aName like '%$s%'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы