https://jsfiddle.net/dafemtg1/
FYI, CSS с использованием свойства преобразования:
img{transition:all 0.2s;}
img:hover {transform:scale(1.4);transition:all 0.2s;}
попробуйте что-нибудь вроде этого
SELECT A.* FROM TableA A
LEFT OUTER JOIN TableB B ON (A.id = B.a_id)
LEFT OUTER JOIN TableC C ON (A.id = C.a_id)
WHERE B.a_id IS NOT NULL
OR c.a_id IS NOT NULL
Чтобы понять, почему вы не получаете никаких результатов, когда в TableC
нет записей, вам нужно немного узнать о типах JOIN в SQL.
По сути, когда вы задаете запрос
TableA A JOIN TableB B ON A.id = B.a_id
вы говорите базе данных просмотреть обе таблицыА
и таблицуВ
и получить все пары строк, которые удовлетворяют предикату join (A.id = B.a_id). Поэтому, если TableB
пуста, база данных не сможет найти и пару строк с вышеупомянутыми критериями.
Этот тип JOIN называется INNER JOIN и является наиболее часто используемым типом операции объединения.
В вашем случае вы хотите получить все строки из TableA X TableB
и все соответствующие строки из TableC
, если такие строки существуют (на основе предиката объединения "A.id = C.a_id". Это происходит в случае OUTER JOIN. Два наиболее распространенных типа такого соединения - это LEFT JOIN (которое включает все строки из левой таблицы) и RIGHT JOIN (которое включает все строки из правой таблицы).
В этом случае ваш запрос должен выглядеть так:
SELECT A.*
FROM
(TableA A JOIN Table B B ON A.id = B.a_id)
LEFT JOIN TableC C ON A.id = C.a_ID
Я бы посоветовал взглянуть на соответствующую страницу Википедии, если вы хотите узнать больше о типах соединений в SQL
Edit
Следуя той же логике, если вы хотите получить все строки из TableA
и только соответствующие строки из таблиц TableB
и TableC
(если они существуют), ваш запрос будет выглядеть так:
SELECT A.*
FROM
(TableA A LEFT JOIN Table B B ON A.id = B.a_id)
LEFT JOIN TableC C ON A.id = C.a_ID