Почему бы не использовать встроенные ffs?
ffs (3) - справочная страница Linux Имя ffs - найти первый бит, заданный словом Synopsis#include <strings.h>
int ffs(int i);
#define _GNU_SOURCE
#include <string.h>
int ffsl(long int i);
int ffsll(long long int i);
Описание ffs () возвращает позицию первого (наименее значимого) бита, установленного в слове i. Меньшим значащим разрядом является позиция 1 и наиболее значимое положение, например. 32 или 64. Функции ffsll () и ffsl () делают то же самое, но принимают аргументы, возможно, разных размеров. Возвращаемое значение Эти функции возвращают позицию первого битового набора или 0, если в i не установлены биты. Соответствует 4.3BSD, POSIX.1-2001. Примечания. Системы BSD имеют прототип в <string.h>. Попробуйте это
выберите * из таблицы1 t1 join table2 t2 на t1.t2ref = t2.id join table3 t3 на t2.t3ref = t3.id
Добавить предложение where для поиска определенных строк в таблице1
, где t1.field = 'value'
Используйте команду JOIN , чтобы связать ваши таблицы с oneantother.
Кроме того, я рекомендовал бы этот учебник by Keith Brown.
вы хотите использовать соединение:
SELECT `t3`.`id` FROM` table3` `t3` LEFT JOIN` table2` `t2` ON` t3`.`foreign_id `=` t2` .`id` LEFT JOIN `table1`` t1` ON `t2`.`foreign_id` =` t1`.`id` WHERE `t1`.``` = 'some_id'
[ ! d2]
Вы хотите сделать join . Существует много учебников об этом и различных способах делать это.
yes
SELECT t3. * FROM t1, t2, t3 WHERE t1.id = t2.id И t2.otherid = t3.id И t1.id = XXXX